본문 바로가기

두두의 IT

[Java, Kotlin] final / open

728x90

final

해당 클래스의 상속을 금지시킴

 

[Java]

final Class : 더 이상 상속되지 않음. final이 없으면 모두 다른 클래스에서 상속 가능

final Method : 더 이상 오버라이딩 될 수 없음

final Field : 상수로서, 실행 중에 값을 변경할 수 없음

 

[Kotlin]

코틀린에서의 클래스와 메서드는 기본적으로 final임


open

open Class : 상속 허용

open Method : 오버라이드 허용

프로퍼티의 앞에도 open 변경자를 붙여야 함

open class Parent {

    // 하위 클래스에서 override 불가능
    fun method1(): Int {
        return 4
    }
    
    // 하위 클래스에서 override 가능
    open fun method2() :Boolean {
        return false
    }
}

// open 클래스는 상속이 가능하다!
class Child() : Parent() {
    override fun method2(): Boolean {
        return true
    }
}

'두두의 IT' 카테고리의 다른 글

[OOP] 접근지정자(Access Specifier)  (0) 2022.04.11
[Kotlin] enum class  (0) 2022.04.11
[Java, Kotlin] 생성자  (0) 2022.04.11
개발자의 역량  (0) 2022.03.29
개발 언어에 대한 관심 (2020년 기준)  (0) 2022.03.21