[java] Kotlin에서 동시에 확장 및 구현

Java에서는 다음과 같은 작업을 수행 할 수 있습니다.

class MyClass extends SuperClass implements MyInterface, ...

Kotlin에서 동일한 작업을 수행 할 수 있습니까? SuperClass추상적이고 구현하지 않는다고 가정MyInterface



답변

인터페이스 구현클래스 상속 사이에는 구문상의 차이가 없습니다 . 다음 :과 같이 콜론 뒤에 쉼표로 구분 된 모든 유형을 나열하기 만하면 됩니다.

abstract class MySuperClass
interface MyInterface

class MyClass : MySuperClass(), MyInterface, Serializable

다중 클래스 상속은 금지되지만 단일 클래스에서 다중 인터페이스를 구현할 수 있습니다.


답변

다음은 클래스가 확장 (다른 클래스) 또는 구현 (하나 또는 서버 인터페이스) 할 때 사용할 일반 구문입니다.

class Child: InterfaceA, InterfaceB, Parent(), InterfaceZ

클래스와 인터페이스의 순서는 중요하지 않습니다.

또한 확장 된 클래스의 경우 괄호를 사용하고 괄호는 부모 클래스의 주 생성자를 참조합니다. 따라서 부모 클래스의 주 생성자가 인수를 받으면 자식 클래스도 해당 인수를 전달해야합니다.

interface InterfaceX {
   fun test(): String
}

open class Parent(val name:String) {
    //...
}

class Child(val toyName:String) : InterfaceX, Parent("dummyName"){

    override fun test(): String {
        TODO("Not yet implemented")
    }
}


답변