默认方法
假如现在有一个接口,它有非常多的实现类,现在想在这个接口上面再加多一个抽象方法,这样的话,每个实现类都需要去实现这个接口,即使有些实现类没有实现这个抽象方法的必要。因此,为了解决这个问题,java8给接口新增了一个默认方法:在接口中定义的抽象方法可以使用default关键字修饰,被default关键字修饰的抽象方法需要编写方法体,而这个方法体则作为这个抽象类的默认实现方法,实现这个接口的实现类就没有必要都需要去实现这个抽象方法,直接使用它的默认实现即可,如果某些子类觉得这个默认实现不能满足我自己的需求,则可以再自己去实现一个可以满足需求的实现方法。语法格式如下:
interface 接口名{修饰符 default 返回值 方法名(){//方法体}}
public interface MyInterface {void show();default void say() {System.out.println("66666666");}}class MyImplOne implements MyInterface {@Overridepublic void show() {}@Overridepublic void say() {System.out.println("MyImpl的say");}}class MyImplTwo implements MyInterface {@Overridepublic void show() {}}
静态方法
Java8处理增强了默认方法,还允许接口拥有静态方法,接口的静态方法调用只能通过“接口.静态方法”的形式调用,静态方法不能被重写。语法格式如下:
interface 接口名{修饰符 static 返回值 方法名(){//方法体}}
public interface MyInterface {static void run(){System.out.println("jhahahh");}}
