根据Oracle的Javadocs-
默认方法使您可以向库的接口添加新功能,并确保与为这些接口的较早版本编写的代码二进制兼容。
静态方法是与其定义的类相关联的方法,而不是与任何对象相关联的方法。该类的每个实例都共享其静态方法。
接口中的静态方法是接口类的一部分,无法实现或覆盖它,而类可以覆盖默认方法。
序号 | 键 | 静态接口方法 | 默认方式 |
---|---|---|---|
1 | 基本的 | 这是仅属于接口的静态方法。我们可以在接口本身中编写此方法的实现 | 这是带有默认关键字的方法,类可以覆盖此方法 |
2 | 方法调用 | 静态方法只能在接口类上调用,而不能在类上调用。 | 它可以在接口以及类上调用 |
3 | 方法名称 | 接口和实现类都可以具有相同名称的静态方法,而不会彼此覆盖。 | 我们可以在实现类时覆盖默认方法 |
4。 | 用例 | 可以用作实用方法 | 它可用于在所有实现类中提供通用功能 |
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { //上调用接口静态方法 DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); //在类上调用默认方法 defaultStaticExampleClass.show(); } }