当前位置: 代码迷 >> 综合 >> Kotlin-30-继承多个父类
  详细解决方案

Kotlin-30-继承多个父类

热度:45   发布时间:2023-10-09 05:24:18.0

目录

1、Java中的继承

2、Kotlin中的继承


1、Java中的继承

  1. Java中的类只能继承一个父类,是无法实现继承多个父类,但是一个类可以实现多个接口。
  2. 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中的继承

  1. Kotlin中的接口是可以给函数实现函数体的
  2. Kotlin中的多继承也是通过接口来实现的,因为能给接口中的函数实现函数体,间接地相当于实现了多个父类的继承。
  3. 如果两个父类接口中有相同的函数,那么我们可以通过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