상속 가능성 변경자
- 기본 상태와 final 변경자
- 클래스와 메서드가 기본적으로 상속이 불가능한 final 상태이다.
- 클래스의 상속을 제한하기 위한 방법임.
- 상속의 허용은 클래스나 메서드에 open 변경자를 붙여줘야한다
open class RichButton : Clickable { fun disable(){} // 이 함수는 final입니다. 하위 클래스가 이 메서드를 오버라이드할 수 없습니다. open fun animate() {} // 이 함수는 open입니다. 하위 클래스에서 이 메서드를 오버라이드할 수 있습니다. override fun click() {} // 이 함수는 상위 클래스에서 선언된 open 메서드를 오버라이드합니다. 오버라이드한 메서드는 기본적으로 open입니다. }
- override 와 final 변경자
- 기반 클래스나 인터페이스의 멤버를 오버라이드하는 경우
- 해당 메서드는 기본적으로 open 상태이다.
- 하위 클래스에서 또 다시 오버라이드가 가능합니다.
- 이를 막기 위해서는 오버라이드 메서드 앞에 final 이 붙어야함
open class RichButton : Clickable { final override fun click() {} // 상위 클래스에서 선언된 open 메서드를 오버라이딩. final 로 이후 상속이 불가능하게 명시 }
추상 클래스와 abstract 변경자
- 추상 클래스의 선언
- 클래스를 abstract 로 선언이 가능하다.
abstract class Animated { abstract fun animate() // 추상 메서드. 기본적으로 open이다. open fun stopAnimating() {} // 비추상 메서드. 기본적으로 final이다. 원한다면 final 로 오버라이드 허용 가능 fun animateTwice() {} // final이다. }
Uploaded by N2T
'코틀린 > 코틀린인액션' 카테고리의 다른 글
[KOTLIN] 컬렉션 (0) | 2024.02.08 |
---|---|
[KOTLIN] try catch finally (0) | 2024.02.08 |
[코틀린인액션] 가시성 변경자 및 접근 제어 (0) | 2023.12.17 |
[코틀린인액션] 코틀린과 자바의 내부 클래스와 중첩 클래스 (0) | 2023.12.17 |
[코틀린인액션] 3중 따옴표 문자열 (0) | 2023.12.09 |