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 interface
interface One{
// abstract function
fun myName()
// function with implementation
fun sayHello(){
println("Hello, 'From Interface One' ")
}
}
interface Two{
// function with implementation
fun sayHello(){
println("Hello, 'From Interface Two' ")
}
// function with implementation
fun myName(){
println("My Name is Interface 'Two'")
}
}
// class implementing interface
class Three:One{
// override interface abstract method
override fun myName() {
println("My Name is Class Three")
}
}
// class implementing more then one interfaces
class Four:One,Two{
// need to implement all the methods
// which we have inherited from multiple interfaces
override fun sayHello() {
// Both interface have sayHello implementation in interfaces,
// so explicitly define Interface name in super to call,
// specific implementation from class
super<One>.sayHello()
super<Two>.sayHello()
println("Hello, From Class 'Four' ")
}
// need to implement all the methods
// which we have inherited from multiple interfaces
override fun myName() {
// called super type implementation of method,
// only interface two have implementation of this method,
// so need to explicitly define interface name
super.myName()
println("My Name is Class Four")
}
}
// Main function, Entry point of program
fun main(){
// create class instance
val four = Four()
// call methods
four.myName()
// call methods
four.sayHello()
}
Output:
輸出:
My Name is Interface 'Two'
My Name is Class Four
Hello, 'From Interface One'
Hello, 'From Interface Two'
Hello, From Class 'Four'
翻譯自: https://www.includehelp.com/kotlin/example-of-resolving-overriding-conflicts-in-inheritance.aspx
kotlin中既繼承又實現