https://kotlinlang.org/docs/inheritance.html
Inheritance(상속)
- 모든 클래스들의 최상위 부모 클래스는 Any
- 모든 클래스는 기본적으로 final class로 처리되어 기본적으로 상속이 불가능
- 상속이 가능한 클래스로 정의하려면 open 키워드를 사용해야한다.
open class Base // Class is open for inheritance
- 부모 클래스를 지정하기 위해서는 class header 뒤에 콜론을 적고 부모 클래스의 header를 적는다. (기본 생성자 포함)
- 만약 부모 클래스가 기본 생성자를 가진다면 자식의 기본 생성자에서 부모 클래스를 반드시 초기화해야 한다.
open class Base(p: Int)
class Derived(p: Int) : Base(p)
- 만약 자식 클래스에 기본 생성자가 없다면 각 secondary constructor에서 super 키워드를 이용해 초기화하거나 다른 secondary constructor를 이용해서 부모 클래스를 초기화한다.
class MyView : View {
constructor(ctx: Context) : super(ctx)
constructor(ctx: Context, attrs: AttributeSet) : super(ctx, attrs)
}
실습
- Position을 상속 가능하게 변경하고 이를 상속받은 TPosition 클래스를 정의하자.
- 단, 기존 Position 클래스에 있는 print 코드는 삭제한다.
- TPosition 클래스는 정수형 z 변수를 추가로 가지며 생성자로는 숫자 3개를 받는다.
- TPosition 클래스의 객체를 생성하라.
'프로그래밍 > Kotlin' 카테고리의 다른 글
Kotlin(코틀린) - var 와 val (0) | 2022.05.31 |
---|---|
Kotlin(코틀린) - Classes(클래스), Constructor(생성자) (0) | 2022.03.31 |