상속은 클래스를 만들 때 부모 클래스(Super Class)의 요소를 물려받는 것을 말한다.
상속하는 클래스는 부모클래스(Super Class) 라고 하고 상속받는 클래스는 자식클래스(Sub Class)라고 한다.
부모 클래스를 상속받은 자식 클래스는 부모 클래스의 멤버 변수나 메소드를 그대로 받아서 사용할 수 있다.
코틀린의 모든 클래스의 상위 형식은 Any
이다. 자바에서의 Object
형식과 동일하며 모든 코틀린 클래스는 명시적 또는 암시적으로 Any
클래스를 상속받는다.
class Person // 암시적 Any 상속
class Person : Any // 명시적 Any 상속
또한 코틀린의 모든 클래스는 기본적으로 final class
로 처리되어 기본적으로 상속이 불가능하다.
상속이 가능한 클래스로 정의하려면 상속 허용 여부를 결정하는 open
키워드를 사용해야한다.
class Person // 상속 불가능
open class Person // 상속 가능
상속 관계 표현은 콜론(:)을 이용한다.
open class Parents
class Child: Parents