수색…
소개
모든 객체 지향 프로그래밍 언어에는 어떤 형태의 클래스 상속이 있습니다. 내가 수정하자 :
 과일, Apples , Oranges 및 Pears 잔뜩 프로그램해야한다고 상상해보십시오. 그들은 모두 크기, 모양, 색이 다릅니다. 그래서 우리는 다른 수업을합니다. 
 그러나 그들의 차이점이 잠깐 문제가되지 않는다고 가정 해 봅시다. 정확하게 Fruit 원하십니까? 어떤 반환 유형은 getFruit() 이 가질 수 있습니까? 
 대답은 Fruit 입니다. 우리는 새로운 반을 만들고 모든 과일을 그것으로부터 상속받습니다! 
통사론
- {기본 클래스}
 - 클래스 {파생 클래스} : {기본 클래스} ({초기화 인수})
 - override {함수 정의}
 - {DC-Object}는 {Base Class}입니다. == true
 
매개 변수
| 매개 변수 | 세부 | 
|---|---|
| 기본 클래스 | 상속 된 클래스 | 
| 파생 클래스 | 기본 클래스에서 상속받은 클래스 | 
| Init 인수 | 기본 클래스의 생성자에 전달 된 인수 | 
| 함수 정의 | 기본 클래스에서 다른 코드와 다른 파생 클래스의 함수 | 
| 직류 - 개체 | 파생 클래스의 형식을 가진 "파생 클래스 개체"개체 | 
기본 사항 : '공개'키워드
Kotlin에서 클래스는 기본적으로 final 이므로 상속받을 수 없습니다.
 클래스에서 상속을 허용하려면 open 키워드를 사용하십시오. 
open class Thing {
    // I can now be extended!
}
 참고 : 추상 클래스, 봉인 된 클래스 및 인터페이스는 기본적으로
open.
클래스에서 필드 상속
기본 클래스 정의 :
open class BaseClass {
    val x = 10
}
 파생 클래스 정의 :
class DerivedClass: BaseClass() {
    fun foo() {
        println("x is equal to " + x)
    }
}
 하위 클래스 사용 :
fun main(args: Array<String>) {
    val derivedClass = DerivedClass()
    derivedClass.foo() // prints: 'x is equal to 10'
}
        클래스에서 메서드 상속
기본 클래스 정의 :
open class Person {
    fun jump() {
        println("Jumping...")
    }
}
 파생 클래스 정의 :
class Ninja: Person() {
    fun sneak() {
        println("Sneaking around...")
    }
}
 닌자는 Person의 모든 메소드에 액세스 할 수 있습니다.
fun main(args: Array<String>) {
    val ninja = Ninja()
    ninja.jump()  // prints: 'Jumping...'
    ninja.sneak() // prints: 'Sneaking around...'
}
        속성 및 메서드 재정의
속성 무시 (읽기 전용 및 변경 가능) :
abstract class Car {
    abstract val name: String;
    open var speed: Int = 0;
}
class BrokenCar(override val name: String) : Car() {
    override var speed: Int
        get() = 0
        set(value) {
            throw UnsupportedOperationException("The car is bloken")
        }
}
fun main(args: Array<String>) {
    val car: Car = BrokenCar("Lada")
    car.speed = 10
}
 메소드 오버라이드 :
interface Ship {
    fun sail()
    fun sink()
}
object Titanic : Ship {
    var canSail = true
    override fun sail() {
        sink()
    }
    override fun sink() {
        canSail = false
    }
}
    
    
    
    
    Modified text is an extract of the original Stack Overflow Documentation
        아래 라이선스 CC BY-SA 3.0
        와 제휴하지 않음 Stack Overflow