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("父类方法!");
}
}