24继承父类并实现多个接口
生活随笔
收集整理的這篇文章主要介紹了
24继承父类并实现多个接口
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Demo01Interface
package InterfaceandExtend;/** 1.接口不能有靜態(tài)代碼塊和構(gòu)造方法* 2.一個類的直接父類是唯一的,但是一個類可以同事實(shí)現(xiàn)多個接口。* public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {}* 3.如果實(shí)現(xiàn)類所實(shí)現(xiàn)的多個接口當(dāng)中,存在重復(fù)的抽象方法,那么只需要覆蓋重寫一次即可。* 4.如果實(shí)現(xiàn)類沒有覆蓋重寫所有接口當(dāng)中的所有抽象方法,那么實(shí)現(xiàn)類就必須是一個抽象類。* 5.如果實(shí)現(xiàn)類所實(shí)現(xiàn)的多個接口當(dāng)中,存在重復(fù)的默認(rèn)方法,那么實(shí)現(xiàn)類一定要對沖突的默認(rèn)方法進(jìn)行覆蓋重寫。(第3條和第五條是類似的,只要一樣,就重寫一次,要讓程序知道該聽誰的話)* 6.一個類如果直接父類當(dāng)中的方法,和接口當(dāng)中的默認(rèn)方法產(chǎn)生了沖突,優(yōu)先用父類當(dāng)中的方法。(Java中繼承大于接口)* */public class Demo01Interface {public static void main(String[] args) {MyInterfaceABImpl myInterfaceAB = new MyInterfaceABImpl();myInterfaceAB.methodA();myInterfaceAB.methodB();myInterfaceAB.methodAbs();//重寫一次即可myInterfaceAB.methodDefault();} }MyInterfaceA.java
package InterfaceandExtend;public interface MyInterfaceA {public abstract void methodA();public abstract void methodAbs();public default void methodDefault() {System.out.println("接口A中的默認(rèn)方法");} }MyInterfaceB.java
package InterfaceandExtend;public interface MyInterfaceB {public abstract void methodB();public abstract void methodAbs();//public abstract void methodElse();public default void methodDefault(){System.out.println("接口B中默認(rèn)方法");} }MyInterfaceABImpl.java
package InterfaceandExtend;public class MyInterfaceABImpl implements MyInterfaceA,MyInterfaceB{@Overridepublic void methodA() {System.out.println("重寫A");}@Overridepublic void methodAbs() {System.out.println("重寫Abs");}@Overridepublic void methodB() {System.out.println("重寫B(tài)");}@Overridepublic void methodDefault() {MyInterfaceA.super.methodDefault();//兩個中都有,只需要覆蓋重寫一個,必須要,不然不知道聽哪個的話System.out.println("對多個接口當(dāng)中沖突的默認(rèn)方法進(jìn)行了覆蓋重寫");}}對于第六條:
一個類如果直接父類當(dāng)中的方法,和接口當(dāng)中的默認(rèn)方法產(chǎn)生了沖突,優(yōu)先用父類當(dāng)中的方
Fu.java
package InterfaceandExtend.FuZiInterface;public class Fu {public void method(){System.out.println("父類的方法");} }Zi.java
package InterfaceandExtend.FuZiInterface;public class Zi extends Fu implements MyInterface{}MyInterface.java
package InterfaceandExtend.FuZiInterface;public interface MyInterface {public default void method(){System.out.println("接口的默認(rèn)方法");} }Zi.java
package InterfaceandExtend.FuZiInterface;public class main {public static void main(String[] args) {Zi zi = new Zi();zi.method();} } //輸出結(jié)果 //父類的方法總結(jié)
以上是生活随笔為你收集整理的24继承父类并实现多个接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: array,arraylist,stri
- 下一篇: 25接口之间的单继承