静态方法和默认方法
/**
* 静态方法和默认方法
*
* 默认方法:默认方法使用关键字default修饰方法
* 默认方法使得开发者可以在 不破坏二进制兼容性的前提下,往现存接口中添加新的方法,
* 即不强制那些实现了该接口的类也同时实现这个新加的方法,默认方法不需要实现
* 默认方法会被实现类继承或者重写
*
* 静态方法:静态方法使用关键字static修饰方法
*
* @author 10170626
*
*/
public class MyLambda2 {
@Test
public void test1() {
Registry registry1 = RegistryFactory.create(DefaultRegistry::new);
System.out.println(registry1.showDescription());
Registry registry2 = RegistryFactory.create(FoodRegistry::new);
System.out.println(registry2.showDescription());
}
public interface Registry {
default String showDescription() {
return "default registry";
}
}
private static class DefaultRegistry implements Registry {
}
private static class FoodRegistry implements Registry {
public String showDescription() {
return "food registry";
}
}
public interface RegistryFactory {
static Registry create(Supplier<Registry> supplier) {
return supplier.get();
}
}
}