不好意思我问错了,我想问上述例子如果 MyImplementClass不继承MyInterface,那么可以调用myStaticMethod方法吗?
时间: 2024-03-07 12:48:44 浏览: 8
如果 `MyImplementClass` 类没有实现 `MyInterface` 接口,那么在这个类中是不能直接调用 `myStaticMethod()` 静态方法的。
因为接口中的静态方法是属于接口的,而不是属于实现这个接口的类。因此,只有实现了这个接口的类才能通过接口名称调用接口中的静态方法。
举个例子:
```java
public interface MyInterface {
static void myStaticMethod() {
System.out.println("调用了 MyInterface 中的静态方法");
}
}
public class MyImplementClass {
void doSomething() {
// MyInterface.myStaticMethod(); // 不能直接调用 MyInterface 中的静态方法
}
}
```
在这个例子中,类 `MyImplementClass` 没有实现接口 `MyInterface`,因此不能直接调用接口中的静态方法。如果需要在这个类中调用 `myStaticMethod()` 方法,可以通过在类中定义一个静态方法来间接调用接口中的静态方法,例如:
```java
public interface MyInterface {
static void myStaticMethod() {
System.out.println("调用了 MyInterface 中的静态方法");
}
}
public class MyImplementClass {
static void myStaticMethod() {
MyInterface.myStaticMethod(); // 通过静态方法间接调用 MyInterface 中的静态方法
}
void doSomething() {
MyImplementClass.myStaticMethod(); // 调用间接调用 MyInterface 中的静态方法的静态方法
}
}
```
在这个例子中,类 `MyImplementClass` 中定义了一个静态方法 `myStaticMethod()`,这个方法通过接口名称调用了接口中的静态方法。然后,在类中的其他方法中,可以通过类名调用这个静态方法来间接调用接口中的静态方法。