Java8-默认方法
2018-02-28 本文已影响0人
红领巾三道杠
普通默认方法
- 默认方法简单说就是接口可以有实现方法,而且不需要实现类去实现其方法
编码方式
- 只需要在方法名前加入default关键字即可实现默认方法
public interface Man {
default void say() {
System.out.println("I'm a Man ");
}
}
多个默认方法解决方案
当一个类实现多个具有默认方法的接口,且这些接口具有相同的默认方法:
- 创建同名方法覆盖重写接口的默认方法
public class People implements Man, Woman {
public void say() {
System.out.println("I'm a People ");
}
}
public interface Man {
default void say() {
System.out.println("I'm a Man ");
}
}
public interface Woman {
default void say() {
System.out.println("I'm a Woman");
}
}
- 使用super来调用指定接口的默认方法
public class People implements Man, Woman {
public void say() {
Man.super.say();
Woman.super.say();
System.out.println("I'm a People ");
}
}
静态默认方法
- 接口可以声明静态方法
public interface Man {
default void say() {
System.out.println("I'm a Man ");
}
static void hello(){
System.out.println("hello");
}
}
- 在实现类中可以直接调用接口的静态方法
public class People implements Man, Woman {
...
public void hello(){
Man.hello();
}
}