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")
}
}