package day014;
/*
接口沒有構造方法;
接口沒有靜態代碼塊;
如果實現類繼承的多個接口中有名稱相同的抽象方法只需覆蓋一次即可;
如果實現類繼承的多個接口中有名稱相同的默認方法必須要對默認方法進行覆蓋重寫;
如果實現類沒能對接口所有的抽象方法進行覆蓋重寫那么實現類必須是抽象類;
一個類中如果直接父類的方法與接口的默認方法沖突那么調用時父類的方法優先;
*/
public class me {
public static void main(String[] args) {
myinterface m=new myinterface();
m.mythodA();
m.mythodB();
m.mythod();
m.mythodAB();
m.my();
}
}
package day014;
public interface myinterfaceA {
public abstract void mythodA();
public abstract void mythodAB();
public default void mythod()
{
System.out.println("A方法!");
}
public default void my()
{
System.out.println("接口默認方法");
}
}
package day014;
public interface myinterfaceB {
public abstract void mythodB();
public abstract void mythodAB();
public default void mythod()
{
System.out.println("B方法!");
}
}
package day014;
public class myinterface extends fu implements myinterfaceA,myinterfaceB {
@Override
public void mythodA() {
System.out.println("覆蓋重寫了A接口");
}
@Override
public void mythodB() {
System.out.println("覆蓋重寫了B接口");
}
@Override
public void mythodAB() {
System.out.println("覆蓋重寫了A,B接口");
}
@Override
public void mythod()
{
System.out.println("覆蓋重寫了相同名稱的默認方法!");
}
}
package day014;
public class fu {
public void my()
{
System.out.println("父類方法!");
}
}