Kotlin 앱 프로그래밍

(코틀린) 상속과 오버라이딩

쿠카이든 2023. 5. 22. 15:31
728x90

클래스 상속 형식

open class Super {		// 상속할 수 있게 open 키워드 이용

}

class Sub: Super() {		// Super를 상속받아 Sub 클래스 선언

}

참고) 매개변수가 있는 상위 클래스의 생성자 호출

open class Super(name: String){
}
class Sub(name: String): Super(name){
}
728x90

 

오버라이딩 예시

open class Super {
    open var someData = 10
    open fun someFun(){
        println("i am super class function : $someData")
    }
}
class Sub: Super(){
    override var someData = 20
    override fun someFun(){
        println("i am sub class function : $someData")
    }
}
fun main() {
    val obj = Sub()
	obj.someFun()
}

실행결과

  • 위 코드는 Super 클래스에 someData 변수와 someFun() 함수를 선언했다.
    • 그리고 Super 클래스를 상속받은  하위 클래스 Sub에도 someData 변수와 someFun() 함수를 선언했다.
    • 이렇게 상위에 선언된 변수나 함수의 이름과 똑같은 이름으로 하위 클래스에서 다시 선언한 것을 오버라이딩이라고 한다.
  • 코틀린에서 오버라이딩 규칙은 먼저 상위 클래스에서 오버라이딩을 허용할 변수나 함수 선언 앞에 open 키워드를 추가하는 것이다.
    • open 키워드로 선언하지 않으면 하위 클래스에서 재정의할 수 없다.
    • 그리고 open 키워드로 선언한 변수나 함수를 하위 클래스에서 재정의할 때는 반드시 선언문 앞에 override라는 키워드를 추가해야 한다.

 

출처 : 깡샘의 안드로이드 프로그래밍 with 코틀린 (강성윤 저)

728x90