반응형

'override'에 해당되는 글 1건

  1. 2019.07.03 코틀린 인터페이스
반응형

코틀린 인터페이스

인터페이스는 미구현 메서드를 포함하여 클래스에서 이를 구현합니다.
추상 클래스와 비슷하지만 클래스가 단일 상속만 되는 반면 인터페이스는 다중 구현이 가능합니다.
주로 클래스에 동일한 속성을 부여해 같은 메서드라도 다른 행동을 할 수 있게 하는 데 사용합니다.

인터페이스의 선언.
다음과 같이 인터페이스에 추상 메서드를 포함할 수 있습니다.
원래 추상 클래스에서 추상 메서드는 abstract 키워드가 필요한데 인터페이스에서는 생략할 수 있습니다.

interface Runnable {
     fun run()
}

인터페이스는 구현이 없는 메서드뿐만 아니라 구현된 메서드를 포함할 수 있습니다. 

interface Runnable {
     fun run()

     fun fastRun() = println(“빨리 달린다”)
}

인터페이스의 구현.
인터페이스를 구현할 때는 인터페이스 이름을 콜론: 뒤에 나열합니다. 
그리고 미구현 메서드를 작성하는데 이때 override 키워드를 메서드 앞에 추가합니다.

class Human : Runnable {
     override fun run() {
     println(“달린다”)
}
}


상속과 인터페이스를 함께 구현.

다음과 같이 상속과 인터페이스를 함께 구현할 수 있습니다.
상속은 하나의 클래스만 상속하는 반면 인터페이스는 콤마로 구분하여 여러 인터페이스를 동시에 구현할 수 있습니다.

open class Animal {

}

interface Runnable {
     fun run()

     fun fastRun() = println(“빨리 달린다”)
}

interface Eatable {
     fun eat()
}

class Dog : Animal(), Runnable, Eatable {
     override fun eat() {
          println(“먹는다”)
     }

     override fun run() {
          println(“달린다”)
     }

}

val dog = Dog()
dog.run()
dog.eat()

반응형
Posted by 컴스터
,


반응형