Kotlin 추상 클래스 (Abstract class)
추상 클래스(abstract)
abstract
추상 클래스를 정의한다. 추상 클래스는 추상 함수와 추상 속성을 갖는다. 추상 클래스 추상 멤버를 가질 수 있으며, 자신은 그대로는 인스턴스화 할 수 없고 하위 클래스에서 상속 추상 메소드와 추상 속성을 구현하여 인스턴스화 한다. 서브 클래스가 구현해야 할 메소드와 속성의 규칙을 정하는 것이 추상 클래스이다.
아래 Greeter
추상 클래스에는 추상 속성 name
과 추상 메서드 greet
가 있다. 이러한 추상 멤버는 시그니처만으로 구현이 되어 있지 않을 것을 알 수 있다.
예제: 추상 클래스의 예
abstract class Greeter { // 추상 클래스
abstract var name: String // 추상 속성
abstract fun greet(): String // 추상 함수
}
Greeter의 상속 서브 클래스를 아래에 정의되어 있다. 여기에서는 각 추상 멤버를 override
키워드로 붙여서 오버라이드(override) 하고 있다. Kotlin에서는 오버라이드 할 때는 override
키워드가 필수이다. 덧붙여서, abstract
클래스는 open
없이 상속 가능한 클래스이다.
예제: 추상 클래스를 상속한 서브 클래스
class Hello : Greeter() { // 추상 클래스를 구현하는 서브 클래스
override var name: String = "devkuma" // 추상 속성을 구현
override fun greet(): String = "Hello" // 추상 함수를 실행
}
그럼 위에 추상 클래스를 상속한 서브 클래스를 실행시켜 보자.
예제: 클래스 실행
fun main() {
var hello = Hello()
println(hello.name)
println(hello.hello())
}
Output:
devkuma
Hello
최종 수정 : 2021-11-28