接上一节……
当某种方法在实现类中不起作用时,可以在接口类中将方法设置成默认方法或静态方法:
在接口INet中:
//default:默认方法 可以带方法体 jdk1.8后新增
//可以在实现类中重写,并可以通过接口的引用调用
default void connection(){
System.out.println("我是接口中的默认连接");
}
//static:静态方法 可以带方法体 jdk1.8后新增
//不可以在实现类中重写,可以通过接口名调用
static void stop(){
System.out.println("我是接口中的静态方法");
}
默认方法可以在实现类中进行重写,静态方法不可以:
@Override
public void connection() {
// TODO Auto-generated method stub
INet.super.connection(); //重写时自动添加该语句,调用接口中默认的方法,super不能省略
}
调用时,默认方法需使用指向SmartWatch的接口引用来调用,静态方法需使用接口名来调用
INet net = new SmartWatch();
net.connection(); //默认方法需使用指向SmartWatch的接口引用来调用
INet.stop(); //静态方法需使用接口名来调用