接口的默认方法

package day13;

public class defultmain {
public static void main(String[] args) {
my m=new my();
m.methodA();
m.methodB();
System.out.println("===========");
myB mb=new myB();
mb.methodA();
mb.methodB();
}

}
package day13;
/*在任何接口中都可以定义抽象方法;
格式:
public abstract 返回值类型 方法名称(参数列表);
注意:
public abstract 为固定格式,可以省略;
接口不能直接使用,要有一个实现类来实现接口(实现类类似于继承的子类)。
实现类的格式:
public class 实现名称 implements 接口{
}
实现类必须覆盖重写接口的所有抽象方法;
*/
//接口的默认方法可以通过实现类的方法直接调用。
//接口的默认方法也可以被实现类的方法覆盖重重写。
/*接口的默认方法的格式:
public default 返回值类型 方法名称(参数列表){}
作用:实现接口升级后,无需对实现类进行改变,但实现类可以直接调用升级后的方法;
*/
public interface myinterface {
public abstract void methodA();
public default void methodB(){
System.out.println("默认方法实现了!");
}

}
package day13;

public class my implements myinterface {
@Override
public void methodA()
{
System.out.println("接口类中的抽象方法实现!");
}
@Override
public void methodB()
{
System.out.println("接口中默认方法重写实现");
}
}
package day13;

public class myB implements myinterface{
@Override
public void methodA()
{
System.out.println("接口类中的抽象方法实现!");
}
}
原文地址:https://www.cnblogs.com/huaobin/p/13457410.html