상속

final / open

상속

final


자바에서 클래스는 기본적으로 상속이 가능하며, final 키워드를 붙이면 상속이 불가능했다.

객체 지향 관점에서 객체에 대한 코드를 줄이고 재사용성을 강화하는 것이 좋다.

하지만 부모 클래스가 변경될 때마다 부모 클래스를 상속하는 자식 클래스들이 변경되어야 하기 때문에 어느 부분에서 문제가 발생할지 모르기 때문에 상속하는 부모 클래스의 변경이 없는 경우에 유효하다는 제약이 있다.

코틀린에서는 이러한 무분별한 상속을 막기 위해 클래스는 기본적으로 상속이 불가능하다.

class A()

class B : A() // ERROR



open


코틀린에서 클래스를 상속하게 만들기 위해서는 부모 클래스에 open 을 붙이면 open 된 클래스는 상속이 가능해진다.

open class A()

class B : A()
essential