[Kotlin/코틀린] override와 super 개념

반응형
SMALL

상속

코틀린에서는 상속 가능한 클래스를 만들기 위해서는 open 키워드를 사용한다.

open 키워드를 사용하면 클래스나 메서드를 상속 및 오버라이딩 할 수 있게 한다.

 

기본적으로 코틀린의 모든 클래스와 메서드는 final로 간주되므로, 상속이 불가능하다. 즉, 다른 클래스가 상속하거나 메서드를 오버라이딩하지 못하게 막혀있다. 이를 가능하게 해주는 것이 open 키워드이다.

open class Animal {
    open fun sound() {
        println("동물이 소리를 냅니다.")
    }
}

 

override를 하기 위해서는 fun 키워드 앞에 override를 함께 붙여 사용하면 된다.

물론, open 처리된 메서드만 가능하다.

class Dog : Animal() {
    override fun sound() {
        // super를 사용하여 상위 클래스의 메서드 호출
        super.sound()
        // 추가 동작
        println("멍멍!")
    }
}
fun main() {
    val myDog = Dog()
    myDog.sound()
}
동물이 소리를 냅니다.
멍멍!
반응형
LIST