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
'Kotlin 앱 프로그래밍' 카테고리의 다른 글
(코틀린) 람다함수와 고차함수 (0) | 2023.05.28 |
---|---|
(코틀린) 데이터 클래스와 컴패니언 클래스 (2) | 2023.05.22 |
(코틀린) 주 생성자와 보조 생성자 (0) | 2023.05.22 |
코틀린 널 안정성 연산자 (0) | 2023.05.21 |
(코틀린) 고차 함수 (0) | 2023.05.21 |