在Java 8中,接口可以包含默认方法(default methods),这些方法可以有默认实现。如果一个类实现了包含默认方法的接口,并且没有提供这个方法的实现,则会使用接口中的默认实现。
如果需要重写接口中的默认方法,可以在实现类中提供具有相同签名的非默认实现。
下面是一个简单的例子:
interface MyInterface {// 默认方法default void printMessage() {System.out.println("这是一个默认方法");}
}class MyClass implements MyInterface {// 重写默认方法@Overridepublic void printMessage() {System.out.println("这是重写后的方法");}
}public class Main {public static void main(String[] args) {MyClass myClass = new MyClass();myClass.printMessage(); // 输出:这是重写后的方法}
}
在这个例子中,MyInterface
定义了一个默认方法 printMessage
。MyClass
实现了这个接口并重写了 printMessage
方法。当 main
方法中创建了 MyClass
的实例并调用 printMessage
方法时,输出将是重写后的消息。