JAVA父类的静态方法能否被子类重写?
静态:
在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系。子类中如果定义了跟父类相同名称、相同的形参列表、相同返回值类型的静态方法,就满足重写的条件,于是在内存中又分配了一块给子类的静态方法,重写了父类方法。
父类代码
1 public class Fu { 2 public static void show() { 3 System.out.println("父类的静态方法"); 4 } 5 public void method() { 6 System.out.println("父类的一般方法"); 7 } 8 }
子类代码
public class Zi extends Fu { public static void main(String[] args) { Fu fu = new Zi(); fu.show(); fu.method(); } public static void show() { System.out.println("子类的静态"); } public void method() { System.out.println("子类的一般方法"); } }
输出结果是:
父类的静态方法
子类的一般方法
当父类引用指向子类对象,只会调用父类的静态方法,此行为并不具有多态性!所以子类重写父类的静态方法,并没有实际意义!
如果真的不知道做什么 那就做好眼前的事情吧 你所希望的事情都会慢慢实现...