Java 8 中默认接口方法和静态接口方法的区别。


根据 Oracle 的 Javadocs -

默认方法使您能够向库的接口添加新功能,并确保与为这些接口的旧版本编写的代码的二进制兼容性。

一个静态方法是与定义它的类关联的方法,而不是与任何对象关联。类的每个实例都共享其静态方法。

接口中的静态方法是接口类的一部分,不能实现或覆盖它,而类可以覆盖默认方法。

序号关键静态接口方法默认方法
1
基础
它是一个仅属于接口的静态方法。我们可以在接口本身中编写此方法的实现。
它是一个带有 default 关键字的方法,类可以覆盖此方法。
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[]) {
      // Call interface static method on Interface
      DefaultStaticExampleInterface.display();
      DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass();
     
      // Call default method on Class
      defaultStaticExampleClass.show();
   }
}

更新于: 2023-10-31

26K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告