코틀린 4-2 상속

hong030·2022년 1월 29일
0
//1. 일반 상속
open class Super{
    var superData = 10
    fun superFun(){
        println("im super data $superData")
    }
}

class Sub:Super() {}


fun main(){
    val obj = Sub()
    obj.superData =20
    obj.superFun()
}


//2. 상위 클래스 내 변수, 함수도 오버라이드할 때
open class Super{
    open var superData = 10
    open fun superFun(){
        println("im super data $superData")
    }
}

class Sub:Super() {
    override var superData = 20
    override fun superFun(){
        println("im sub data $superData")
    }
}


fun main(){
    val obj = Sub()
    obj.superFun()
}


//3. 접근 제어자 사용 가능.
open class Super {
    var publicData = 10
    protected var protectedData = 20
    private var privateData = 30
}

class Sub:Super(){
    fun subFun(){
        publicData++
        protectedData++
     //   privateData++
    }
}

fun main(){
    val obj = Sub()
    obj.publicData++
    //obj.protectedData++
    //obj.privateData++
    
    val obj2 = Super()
    obj2.publicData++
    //obj2.protectedData++
    //obj2.privateData++
}
profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글