default:默认方法
在类接口中可以直接定义的方法,实现接口的类可以直接使用
使用案例:
public interface MyInterface { default void display() { System.out.println("This is default method."); } }
说明:被default修饰的方法可以不被子类实现。即在不破坏现有代码的情况下,可以向接口中添加新方法。
这样的设计理念体现了适配器模式:target在适配原有的adaptee的情况下,可以添加新的adaptee
除此之外还解决了多继承问题:类可以实现多个接口,当多个接口存在相同签名的默认方法时,实现类可以指定实现哪一个接口的默认方法或声明自己实现
static:静态方法
可以直接通过接口名调用,不能通过接口的实现对类/接口的对象调用,不能被继承与覆盖
使用案例:
public interface MyInterface { static void showStaticMessage() { System.out.println("This is a static method in interface."); } } public class Test { public static void main(String[] args) { MyInterface.showStaticMessage(); // 直接通过接口名调用静态方法 } }
可以作为辅助方法,实现一些辅助功能,不依赖于接口的状态与实例
functional interfaces:函数式接口
只包含了一个抽象方法的接口,可以使用lambda匿名实现
@FunctionalInterface //不是必须的,添加此注解后会被指为函数式接口,如果接口不符合定义(包含多于一个抽象方法)编译器会报错。但是即使没有这个注解,只要接口满足条件他就可以作为函数式接口使用 public interface MyFunctionalInterface { void doSomething(); } public class Test { public static void main(String[] args) { MyFunctionalInterface mfi = () -> System.out.println("Hello, functional interface!"); //实现接口 mfi.doSomething(); //调用接口的方法 } }
标签:funcation,default,void,接口,static,interface,public From: https://www.cnblogs.com/kun1790051360/p/18319911