4-2 클래스를 재사용하는 상속

StrayCat·2022년 10월 3일
0

상속과 생성자

open class Super{
}

class Sub: Super(){
}

코틀린의 클래스는 기본적으로 상속이 불가능하다.
상속이 필요한 경우 상위 클래스는 open 키워드를 사용하여 허용하고, 하위 클래스는 :를 붙여 상속을 나타낸다.

매개변수가 있을 경우 맞춰줘야한다.

open class Super(name:String){
}

class Sub(name:String): Super(name){
}

하위클래스에 보조생성자만 있을 경우 보조생성자에 작성한다.

class Sub: Super{
    constructor(name:String):super(name){
        
    }
}

오버라이드(Override)

오버라이드가 필요한 상위 클래스의 변수와 함수 앞에 모두 open 키워드를 붙여줘야한다.

open class Super{
    open var someData = 10
    open fun someFun(){
        println("asdf")
    }
}

class Sub: Super(){
    override var someData = 20
    override fun someFun(){
        print("qwer")
    }
}

접근 제한자

기본적으로 생략할 경우 public상태

  • public : 전체 사용 가능
  • internal : 같은 모듈(App)에서만
  • protected : 상속관계에서만 / 최상위에서는 선언 불가능
  • private : 클래스 내부일 경우 클래스에서만 / 최상위에서 선언되면 파일 내부에서만 가능

0개의 댓글