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
반응형
'KOTLIN' 카테고리의 다른 글
코틀린(Kotlin) Null 값에 대한 처리 (0) | 2021.01.02 |
---|---|
코틀린(kotlin) 추상클래스 & 인터페이스 (0) | 2020.12.27 |
코틀린(Kotlin) 함수 & 클래스 사용하기 (0) | 2020.12.27 |
코틀린(Kotlin) 반복문 사용하기 (0) | 2020.12.27 |
코틀린(Kotlin) 배열 & 컬렉션 (0) | 2020.12.27 |