추상 클래스 (Abstract Class)
abstract class Student { abstract fun learnKotlin() // 최소 하나 이상의 멤버가 abstract fun learnJava() {} } |
또한 non-abstract open 멤버를 abstract 멤버로 재정의(override) 할 수 있습니다.
[Remind] 상속을 하려면 꼭 open을 선언해주어야 합니다. 왜냐하면 아무 선언이 없으면 코틀린 클래스는 기본적으로 Java의 final 클래스와 같기 때문입니다.
open class Person { open fun needToSleep() {} } abstract class Student : Person() { override abstract fun needToSleep() abstract fun learnKotlin() fun learnJava() {} } |
인터페이스 (Interface)
public interface Person { void needToSleep(); // interface 내에서는 abstract로 유추 default String getName() { return "Hong"; } } |
코틀린
interface Person { fun needToSleep() fun getName():String = "Hong" } |
interface에서 구현한 method도 override가 가능합니다.
interface Person { fun needToSleep() fun getName():String = "Hong" } class Student : Person { override fun needToSleep() { } fun learnKotlin() { } override fun getName(): String { return "Tom" } } |
또한 다음과 같이 하나 이상의 interface를 구현할 수 있습니다.
interface Person { fun needToSleep() fun getName():String = "Hong" } interface Adult { fun needToHoliday() fun getName():String = "Choi" } class Student : Person, Adult { override fun needToHoliday() {
} override fun needToSleep() { } fun learnKotlin() { } override fun getName(): String { return "Tom" } } |
'프로그래밍 > Kotlin' 카테고리의 다른 글
코틀린(Kotlin) 확장(Extension) #1 (0) | 2017.12.14 |
---|---|
코틀린(Kotlin) 개발환경 구축 (0) | 2017.12.13 |
코틀린(Kotlin) 함수(function) #1 (0) | 2017.12.13 |
코틀린 Getters and Setters #2 (0) | 2017.12.10 |
코틀린(Kotlin) Getters and Setters #1 (0) | 2017.12.10 |
코틀린(Kotlin) 클래스 상속 (0) | 2017.12.09 |
코틀린(Kotlin) 클래스 선언 방법 #3 (0) | 2017.12.08 |