앱 개발/Kotlin

Class(상속, 오버라이딩)

태기 2023. 2. 26. 00:12

<< git 소스코드 >>

1. 상속

상속 클래스 선언 형식은 다음과 같다

class [클래스명] : [상속받을 클래스명]() {}

 

이전 포스팅에서 생성했던 Human 클래스를 상속받는 Korean 객체를 작성해보자

open class Human(val name: String = "Anonymous") {
	...
}

class Korean : Human() {}

상속을 받기 위해서는 상속받을 클래스 앞에 open을 선언해야 한다

 

자바와 같이 상속은 1개만 받을 수 있다

2. 오버라이딩

open class Human(val name: String = "Anonymous") {
	...
    
    open fun singASong() {
        println("lalala")
    }
}

class Korean : Human() {
	override fun singASong(){
        println("라라라")
    }
}

fun main() {
    val korean = Korean()
    korean.singASong()
}

오버라이딩도 마찬가지로 부모 클래스의 해당 메서드에 open을 선언해줘야 한다

 

override fun singASong(){
    super.singASong()
    println("라라라")
}

부모클래스의 메서드도 실행되도록 하기 위해서는 super를 선언하면 된다