KOTLIN

코틀린(Kotlin) 상속 사용법 (open , override)

사과씨앗 2020. 12. 27. 22:11
728x90
반응형

안녕하세요 이번 글에서는 클래스의 상속에 대해 알아보겠습니다. 상속에 대한 자세한 개념은 넘어가도록 하겠습니다.

 

class 자식 클래스명 () : 부모 클래스명(){

   //코드

}

 

이러한 형태로 작성하여 상속을 받습니다.

 

open class Parents{
    
} 

class children() : Parents(){
    
}

여기서 주의할 점은 상속을 해주는 부모 클래스는 클래스 앞에 open이라는 키워드를 선언해 주어야지만 자식 클래스에서 해당 클래스를 상속받을 수 있습니다. 

 

open class Parents{
    var name:String = "사과씨앗"
    fun send(){
        print(name)
    }

}

class children() : Parents(){
    fun take(){
        name = "사과쥬스"
        send()
    }
}

상속을 받을 경우 자식 클래스는 부모 클래스의 프로퍼티와 함수를 사용할 수 있습니다.

 

open class Parents{
    //오버라이드 해주는 함수
    open fun send2(){
    }
}

class children() : Parents(){
    //오버라이드 받은 함수
    override fun send2(){
    }
}

위 코드처럼 오버라이드 하여 재정의가 필요한 함수는 부모 클래스의 fun 앞에 open 키워드를 선언하여 줍니다.

자식 클래스에서는 fun 앞에 override를 사용하여 줍니다. 

 

open class Parents{
    //오버라이드 해주는 프로퍼티
    open var name:String = "사과씨앗"
  
}

class children() : Parents(){
    //오버라이드 받는 프로퍼티
    override var name:String = "사과쥬스"
   
}

프로퍼티 또한 같은 방법으로 오버라이드 받아 사용이 가능합니다.

 

fun main(){
    var firstName = "씨앗"
    var lastName = "사과"
    print("합쳐진 이름 : ${firstName.plus(lastName)}")
}

fun String.plus(word:String):String {
    return this + word
}

위처럼 이미 만들어져 있는 클래스에 도트 연산자를 이용하여 함수를 붙여 넣어 확장 함수를 사용할 수도 있습니다.

확장한다고 해서 실제 클래스의 코드가 변경되는 것이 아닌 단지 실행 시 도트 연산자로 호출해서 사용할 수 있도록 해줍니다.

 

다음 글에서는 추상 클래스와 인터페이스의 사용방법에 대해서 알아보겠습니다.

 

오늘도 봐주셔서 감사합니다^^

728x90
반응형