接口定义加强
1.追加了普通方法 ,用default修饰
2.可以定义静态方法
接口定义加强
1.追加了普通方法 ,用default修饰
2.可以定义静态方法
在子类继承接口之后,如果该接口又继续添加方法,则此接口将无法继续使用
1.使用default 来定义普通方法,需要通过对象调用
package num.com;
interface IMessage{
public default void Print(){
System.out.println("Print");
}
public void print();
}
class Message implements IMessage{
public void print(){
System.out.println("print");
}
}
public class TestDemo5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Message ms=new Message();
ms.print();
ms.Print();
}
}
2.使用static来定义静态方法,通过接口名就可以调用
接口的子类依然是多继承的关系,而抽象类却是单继承。
package num.com;
interface IMessage{
public default void Print(){
System.out.println("Print");
}
public static IMessage getInstance(){
return new Message();
}
public void print();
}
class Message implements IMessage{
public void print(){
System.out.println("Hello");
}
}
public class TestDemo5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
IMessage ms=IMessage.getInstance();
ms.print();
ms.Print();
}
}
在之前接触到的是1.5~1.7
1.8接口新特性
接口加强
接口在使用的时候缺个方法,
接口只有方法的声明,而没有方法实现。
将接口将无法实现,
可以使用default来定义普通方法,需要通过对象调用。
可以使用static来定义静态方法,通过类名.进行访问。
接口可以被多实现,继承只能被继承一次。
建议不要用,因为时间一长,许多的支持会出现问题,此操作不属于标准设计,它属于挽救设计。