코틀린의 class 타입은 기본적으로 final 입니다. final 키워드가 클래스에 붙게 되는 경우 해당 클래스는 상속을 이어갈 수 없는 클래스가 됩니다. 자바에서는 모든 클래스가 상속이 가능하며 final 키워드를 활용하여 추후 상속가능성을 닫는 구조였습니다. 하지만 kotlin은 class가 상속을 허용해주는 방향으로 발전해나갔으며 해당 키워드는 open 입니다. open class Dog { // 상속이 가능한 상태의 클래스 open var age: Int = 0 open fun bark() { println("멍멍") } } Dog 클래스의 필드, 함수들 또한 클래스와 마찬가지로 open 키워드를 통해 오버라이딩을 허용해주어야 합니다. 해당 Dog 클래스를 상속하는 ChildDog 클래스를 만들..