JAVA父类的静态方法能否被子类重写?
- 2019 年 10 月 8 日
- 筆記
静态:
在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系。子类中如果定义了相同名称的静态方法,并不会重写,而应该是在内存中又分配了一块给子类的静态方法,没有重写这一说,只是单纯的名字重复了。
父类代码
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("子类的一般方法"); } }
输出结果是:
父类的静态方法
子类的一般方法