我很困惑为什么不允许以下内容:
public interface MyInterface {
MyInterface getInstance(String name);
}
public class MyImplementation implements MyInterface {
public MyImplementation(String name) {
}
@Override
public static MyInterface getInstance(String name) { // static is not allowed here
return new MyImplementation(name)
}
}
我明白为什么接口中的方法不能是静态的,但为什么覆盖方法不能是?
我希望所有类都实现该getInstance(String name)
方法,但我目前仅限于在对象已经被实例化的情况下才能调用该方法,哪种方式违背了目的......
*更新:*感谢您的回答,我现在更好地理解了。基本上我不应该试图让一个实用程序类(或一个工厂类)实现一个接口(或者至少不是以这种方式)......