kotlin中既继承又实现
继承中的主要冲突 (Overriding Conflicts in Inheritance)
It may appear, we inherit more than one implementation of the same method.
看来,我们继承了同一方法的多个实现。
Need to implement all the methods which we have inherited from multiple interfaces.
需要实现我们从多个接口继承的所有方法。
解决Kotlin中继承中的主要冲突 (Resolving Overriding Conflicts in Inheritance in Kotlin)
package com.includehelp// declare interfaceinterface One{// abstract functionfun myName()// function with implementationfun sayHello(){println("Hello, 'From Interface One' ")}}interface Two{// function with implementationfun sayHello(){println("Hello, 'From Interface Two' ")}// function with implementationfun myName(){println("My Name is Interface 'Two'")}}// class implementing interfaceclass Three:One{// override interface abstract methodoverride fun myName() {println("My Name is Class Three")}}// class implementing more then one interfacesclass Four:One,Two{// need to implement all the methods // which we have inherited from multiple interfacesoverride fun sayHello() {// Both interface have sayHello implementation in interfaces,// so explicitly define Interface name in super to call, // specific implementation from classsuper<One>.sayHello()super<Two>.sayHello()println("Hello, From Class 'Four' ")}// need to implement all the methods // which we have inherited from multiple interfacesoverride fun myName() {// called super type implementation of method,// only interface two have implementation of this method, // so need to explicitly define interface namesuper.myName()println("My Name is Class Four")}}// Main function, Entry point of programfun main(){// create class instanceval four = Four()// call methodsfour.myName()// call methodsfour.sayHello()}
Output:
输出:
My Name is Interface 'Two'My Name is Class FourHello, 'From Interface One' Hello, 'From Interface Two' Hello, From Class 'Four'
翻译自: /kotlin/example-of-resolving-overriding-conflicts-in-inheritance.aspx
kotlin中既继承又实现