Kotlin (코틀린)
Kotlin in A..Z (20) - 추상 클래스
강태종
2020. 7. 17. 10:54
- 추상 클래스 (abstract)
- 추상 클래스는 객체를 인스턴스화 할 수 없다.
- 추상 클래스는 하위 클래스를 어떻게 구현해야 하는지 나타내는 용도로 쓰인다.
- open 키워드를 사용할 필요 없이 상속시킬 수 있음
코드
abstract class Parent {
val normal: Int = 0
// 추상 프로퍼티, 하위 클래스에서 반드시 재정의를 해야함
abstract val abstractVal: Int
fun normalFunction() {
println("Normal Function")
}
// 추상 메소드, 하위 클래스에서 반드시 재정의를 해야함
abstract fun abstractFunction()
}
class Child : Parent() {
// override 키워드를 사용해서 재정의한다.
override val abstractVal: Int = 0
override fun abstractFunction() {
println("Func")
}
}
- object 표현식을 사용한 추상 클래스 객체 인스턴스
코드
abstract class Test {
abstract fun action()
}
fun main() {
val abstractInstance = object : Test() {
override fun action() {
println("Test")
}
}
abstractInstance.action()
}
결과
Test