用Java写一个案例需要体现default方法和static的方法的使用
时间: 2024-12-12 14:25:33 浏览: 3
Java软件开发实战 Java基础与案例开发详解 5-6 方法的定义 共24页.pdf
在Java中,默认方法(Default methods)是自Java 8引入的新特性,它允许在接口中提供默认实现,使得该接口可以被现有的非接口类实现。而静态方法(Static method)则是一个属于类而不是对象的方法,可以直接通过类名调用,不需要创建实例。
下面是一个简单的例子,展示了如何使用默认方法和静态方法:
```java
// 定义一个接口 withDefaultMethods
interface WithDefaultMethods {
// 默认方法,所有实现了这个接口的类都会自动继承此方法
default void printMessage(String msg) {
System.out.println("Using default method in interface: " + msg);
}
// 静态方法,可以直接通过类名调用
static void showMessage(String msg) {
System.out.println("Showing message statically: " + msg);
}
}
class ConcreteClass implements WithDefaultMethods {
@Override
public void printMessage(String msg) {
// 可以覆盖接口的默认方法,添加特定实现
System.out.println("Overriding default method: " + msg);
}
public static void main(String[] args) {
// 直接通过接口名调用默认方法
WithDefaultMethods.defaultInstance().printMessage("Hello from interface");
// 实例化并调用默认方法
ConcreteClass instance = new ConcreteClass();
instance.printMessage("Hello from class");
// 调用静态方法
WithDefaultMethods.showMessage("This is a static method");
}
}
```
在这个例子中:
- `printMessage` 是一个默认方法,所有实现了 `WithDefaultMethods` 的类都会有一个默认实现,但在 `ConcreteClass` 中我们选择了一个不同的实现。
- `showMessage` 是一个静态方法,它不需要创建 `WithDefaultMethods` 类的对象就可以直接调用。
阅读全文