1. interface
interface Person {
// (1)
var age: Int
// (2)
val height: Int
get() {
return 30
}
// (3)
fun earn(): Int
// (4)
fun talk() = println("말한다!")
// (5)
fun walk() {
println("걷는다")
}
// (5)
fun greet(): String {
return "안녕하세요"
}
@JvmStatic
fun hello() = println("안녕!")
companion object {
fun hello_en() = println("hello!")
}
}
코틀린의 인터페이스는 자바 유사하나 조금 차이가 있다
1. 추상 프로퍼티 선언 가능
- var를 선언하는 경우 getter, setter를 반드시 구현해야한다(기본 구현 필수)
- 계산 프로퍼티
- 백킹 필드(backing field)가 존재하지 않음
- 추상 프로퍼티에 대한 default 구현 가능 get()
2. static이 없어 companion object 또는 @JvmStatic 어노테이션으로 가능
3. default 대신 일반적인 함수 선언과 동일하게 선언 하고 몸체(body)가 있는 경우 default 함수로 판단
* 인터페이스 다중 상속 시 동일한 시그니처에 대한 처리는 명시적으로 super 호출 함으로서 해결 할 수 있다
interface A {
fun run() = println("A Run")
}
interface B {
fun run() = println("B Run")
}
class C : A, B {
override fun run() {
super<A>.run()
}
}
'공부' 카테고리의 다른 글
Kotlin 기본 문법 정리 - 타입 체크, 캐스팅 (0) | 2025.07.27 |
---|---|
Kotlin 기본 문법 정리 - 접근 지정자 (0) | 2025.07.26 |
Kotlin 기본 문법 정리 - object (2) | 2025.07.23 |
Kotlin 기본 문법 정리 - 상속 (0) | 2025.07.21 |
Kotlin 기본 문법 정리 - 클래스(Class) (0) | 2025.07.21 |