Java 8中的默认方法是什么?

Java中的接口类似于类,但是它仅包含final和static的抽象方法和字段。

在单独的类中,您需要实现此接口并为其所有抽象方法提供主体。

示例

interface MyInterface{
   public void demo();
}
public class InterfaceExample implements MyInterface{
   public void demo() {
      System.out.println("这是demo方法的实现");
   }
   public static void main(String args[]) {
      new InterfaceExample().demo();
   }
}

输出结果

这是demo方法的实现

如果将新方法添加到接口,则需要在实现该接口的所有类中为该方法提供主体

默认方法

JSE8开始,Java中引入了默认方法。从那时起,您可以将默认实现写入接口中的特定方法。如果这样做,则无需在已经实现此接口的类中实现这些(默认方法)。

默认方法也称为防御者方法或虚拟扩展方法。您可以使用default关键字将默认方法定义为-

default void display() {
   System.out.println("这是默认方法");
}

–接口的所有方法都是公共的,因此无需在显式使用公共之前对其进行使用。

示例

以下Java示例演示了Java中默认方法的用法。

interface sampleInterface{
   public void demo();
   default void display() {
      System.out.println("这是默认方法");
   }
}
public class DefaultMethodExample implements sampleInterface{
   public void demo() {
      System.out.println("这是demo方法的实现");
   }
   public static void main(String args[]) {
      DefaultMethodExample obj = new DefaultMethodExample();
      obj.demo();
      obj.display();
   }
}

输出结果

这是demo方法的实现
这是默认方法