인터페이스를 사용 하려면 클래스에 인터페이스를 상속 받곤 했다.
그리고 인터페이스를 구현하여 사용했었다.
class ThisActivity : AddInterface {
override fun startClient(clientName: String) {
...
}
override fun stopClient() {
...
}
}
interface AddInterface {
fun startClient(clientName:String)
fun stopClient()
}
근데 꼭 클래스 자체에 상속을 받아야하는 걸까?
다른 방법으로도 인터페이스를 구현할 수 있다.
오브젝트를 이용하는 것이다.
코드는 다음과 같다.
class ThatActivity {
val addObject = object : AddInterface {
override fun startClient(clientName: String) {
// ...
}
override fun stopClient() {
// ...
}
}
// or
fun addFunction(): AddInterface {
return object : AddInterface {
override fun startClient(clientName: String) {
// ...
}
override fun stopClient() {
// ...
}
}
}
}