728x90
반응형
안녕하세요. 이번 포스팅은 코틀린 인터페이스에 대해 다뤄보도록 하겠습니다.
인터페이스는 상속이랑 비슷하지만 좀 다른데요,
상속은 부모 클래스로부터 받는 속성들을 그대로 쓸 수 있는 반면,
인터페이스는 함수를 무조건 Override 해야합니다.
사용은 아래와 같습니다.
interface 인터페이스명 {
fun 함수1()
fun 함수2()
}
함수를 선언만 하고 정의는 하지 않습니다.
인터페이스를 implements한 클래스는 무조건 인터페이스의 함수를 재정의합니다.
interface Person {
fun eat()
fun sleep()
}
class Student : Person {
override fun eat() {
}
override fun sleep() {
}
}
코틀린에서는 인터페이스에서도 함수를 구현할 수 있습니다. 그러한 함수는 implements받는 클래스는 다시 재정의하지 않아도 됩니다.
하지만 인터페이스에 선언은 되어있지만 구현되어있지 않은 함수는 무조건 재정의해주어야합니다.
재정의해주는 것을 명시해주기 위해서 abstract라는 예약어를 붙입니다.
fun main(args : Array<String>) {
val student : Student = Student()
student.sleep()
}
interface Person {
fun eat() {
println("먹는다")
}
fun sleep() {
println("잔다")
}
abstract fun study() // abstract : 반드시 구현해야하는 것
}
class Student : Person {
override fun study() {
}
}
728x90
반응형
'모바일 > Kotlin' 카테고리의 다른 글
[Kotlin] 자바 코드를 코틀린 코드로 자동 변환 (0) | 2021.04.11 |
---|---|
[Kotlin] 코틀린 제너릭(Generic) (0) | 2021.04.11 |
[Kotlin] 코틀린 상속 (0) | 2021.04.11 |
[Kotlin] 코틀린 변수 범위, 접근 제어자, 접근 제어자 예제 (0) | 2021.04.11 |
[Kotlin] 클래스(Class) 실습 TV 만들기 (0) | 2021.04.09 |
댓글