静态方法是不能被子类重写(也叫覆盖)的(为什么不能重写,则是另外一个问题了)
接口中是不能有被实现的方法的,否则它就不是接口而是抽象类
一个类要实现接口中的方法,其实就是对接口方法的重写。而要实现静态方法,就必须重写接口中的静态方法,这和第一点产生冲突。
如果觉得难以理解的话,请看下面的例子
假设在 java 中可以定义静态方法:- public interface MyInterface {
- public static void f();
- }
- 有两个子类实现了这个接口:
- public class A implements MyInterface {
- public static void f(){
- System.out.println("AAAA");
- }
- }
- public class B implements MyInterface {
- public static void f(){
- System.out.println("BBBB");
- }
- }
复制代码 |