Extend and implement at the same time in Kotlin

前端 未结 2 572
情歌与酒
情歌与酒 2020-12-05 12:39

In Java, you can do such thing as:

class MyClass extends SuperClass implements MyInterface, ...

Is it possible to do the same thing in Kotl

相关标签:
2条回答
  • 2020-12-05 13:02

    This is the general syntax to use when a class is extending (another class) or implementing (one or serveral interfaces):

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

    Note that the order of classes and interfaces does not matter.

    Also, notice that for the class which is extended we use parentheses, thee parenthesis refers to the main constructor of the parent class. Therefore, if the main constructor of the parent class takes an argument, then the child class should also pass that argument.

    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")
        }
    }
    
    0 讨论(0)
  • 2020-12-05 13:05

    There's no syntactic difference between interface implementation and class inheritance. Simply list all types comma-separated after a colon : as shown here:

    abstract class MySuperClass
    interface MyInterface
    
    class MyClass : MySuperClass(), MyInterface, Serializable
    

    Multiple class inheritance is prohibited while multiple interfaces may be implemented by a single class.

    0 讨论(0)
提交回复
热议问题