目录
1、Java中的继承
2、Kotlin中的继承
1、Java中的继承
- Java中的类只能继承一个父类,是无法实现继承多个父类,但是一个类可以实现多个接口。
- Java中的接口是无法给函数添加函数体的
abstract class TestFather {public abstract void funA();
}
interface Test1 {void funB();
}
interface Test2 {void funC();
}
public class TestMain extends TestFather implements Test1,Test2{@Overridepublic void funA() { }@Overridepublic void funB() { }@Overridepublic void funC() { }
}
2、Kotlin中的继承
- Kotlin中的接口是可以给函数实现函数体的
- Kotlin中的多继承也是通过接口来实现的,因为能给接口中的函数实现函数体,间接地相当于实现了多个父类的继承。
- 如果两个父类接口中有相同的函数,那么我们可以通过super<父接口1>的方式来继承指定父类的函数体
super<TestB>.commonFun()
interface TestA {fun canPrint()fun commonFun() {println("我是TestA")}
}
interface TestB {fun canWrite()fun commonFun() {println("我是TestB")}
}
class TestC : TestA, TestB {override fun canPrint() {}override fun canWrite() {}override fun commonFun() {super<TestB>.commonFun()}
}
fun main() {val testc=TestC()testc.commonFun()
}
//输出结果
我是TestB
我是TestC