Kotlin 튜토리얼 - 8 상속

상속은 부모 클래스에서 속성과 메서드를 상속하는 하위 클래스를 만드는 메커니즘입니다. 기본적으로 Kotlin에서 생성된 각 클래스는 Any 클래스의 속성과 메소드를 상속받습니다.

일반적으로 부모 클래스는 엔터티의 일반적인 표현이며 하위 클래스는 엔터티의 보다 구체적인 표현입니다. 상속 메커니즘은 이 그림에 설명되어 있습니다.



상속 만들기



Kotlin에서는 : 표기법과 부모 클래스 이름을 사용하여 상속 메커니즘을 만들 수 있습니다. 이 예에는 CarRaceCar 라는 두 개의 클래스가 있습니다. Car 클래스는 RaceCar 클래스가 Car 클래스의 하위 클래스인 경우 상위 클래스입니다. Car 클래스와 RaceCar 클래스 사이의 관계가 이 그림에 설명되어 있습니다.


Car 클래스는 Car.kt 파일 내부에 생성됩니다.

open class Car (val manufacturer: String, val type: String) {
    open fun run() {
        println("Running...")
    }
}

RaceCar 클래스는 RaceCar.kt 파일 내부에 생성됩니다.

// create a RaceCar class that inherits Car class
class RaceCar(val team: String, manufacturer: String, type: String) : Car(manufacturer, type) {
    // create a specific implementation for run() method
    // in RaceCar class
    override fun run() {
        println("Running with racing spec from $team")
    }
}

RaceCar 클래스의 개체는 main() 메서드에서 생성됩니다.

fun main() {
    // create an object from RaceCar class
    val raceCar = RaceCar("Manthey Racing","Porsche","911 GT3")
    // call run() method
    raceCar.run()
}


산출

Running with racing spec from Manthey Racing



위의 코드를 기반으로 Car 클래스는 클래스 선언 전에 open 키워드가 추가되어 부모 클래스 역할을 합니다. open 키워드는 클래스가 다른 클래스에서 상속될 수 있음을 의미합니다. Car 클래스에서 run() 메서드가 open 키워드와 함께 추가되어 이 메서드를 재정의하거나 하위 클래스에서 구체적으로 구현할 수 있습니다.
Car 클래스의 하위 클래스는 RaceCar 클래스입니다. RaceCar 클래스는 특히 run() 키워드를 사용하여 override 메서드를 구현합니다. RaceCar 클래스의 개체가 main() 메서드에서 생성된 다음 생성된 개체에서 run() 메서드가 호출됩니다.

메모



Kotlin에서는 다중 상속 메커니즘을 사용할 수 없습니다. 다중 상속은 클래스가 많은 부모 클래스에서 상속할 수 있도록 하는 메커니즘입니다. 이것은 다중 상속의 예입니다.



다단계 상속은 Kotlin에서 사용할 수 있습니다. 이것은 다단계 상속의 예입니다.



출처


  • 여기link에서 Kotlin의 상속에 대해 자세히 알아보세요.

  • 이 글이 Kotlin 프로그래밍 언어를 배우는 데 도움이 되기를 바랍니다. 생각이나 의견이 있으면 아래 토론 섹션에 작성할 수 있습니다.

    좋은 웹페이지 즐겨찾기