1. 상속 - 최상위 클래스 Any
- 클래스에 상위타입을 선언하지 않으면 Any가 상속됨
- 코틀린의 최상위 클래스는 Any이다.
class Test1 // 암시적인 Any상속
class Test2 : Any() // 명시적인 Any상속
// java의 extend 대신 콜론(:) 을 쓴다.
- Any는 java.lang.Object와는 다른 클래스이다.
- equals(), hashCode(), toString() 만 있다.
package kotlin
public open class Any {
public open operator fun equals(other: Any?): Boolean
public open fun hashCode(): Int
public open fun toString(): String
}
2. 상속 - 특징
- 명시적으로 상위타입을 선언하려면, 클래스 해더의 콜론 뒤에 상위타입을 선언하면 됨.
- 파생클래스에 기본생성자가 있으면 파생클래스의 기본생성자에서 상위타입의 생성자를 호출해서 초기화 할 수 있다.
//상속을 해줄 클래스가 open을해주어야 다른 클래스가 상속을 받을 수 있다.
open class AA(x: Int)
// 파생클래스 (상속받을 클래스)
// 상속받을 클래스 : 상위타입
// 상속받을 클래스에 기본생성자가 있으면 상위타입의 생성자를 호출해서 초기화 할 수 있음.
class BB(x: Int) : AA(x)