接口默认方法
Java8之前版本接口只能包含抽象方法,Java8新增了接口的默认方法,接口也可以包含若干个实例方法。在Java8中,使用default关键字,可以在接口内定义实例方法,这个方法并非抽象方法,而是拥有特定逻辑的具体实例方法。
举个例子,人类都会吃,定义接口Hunman,包含一个默认方法eat()。
public interface Hunman {
void say();
default eat() {
System.out.println("Hunman eat default method");
}
}
定义一个Man类实现接口Human。
class Man implements Hunman {
@Override
public void say() {
System.out.println("Hello...");
}
}
测试:
public void test() {
Man man = new Man();
man.say();
man.eat();
}
输出结果:
具体的类里面不是必须重写默认方法,这一改进使得Java8拥有了类似多继承的能力。
鸟都会飞,定义一个接口Bird,包含默认方法fly()。