静态:
在编译时所分配的内存会一直存在(不会被回收),直到程序退出内存才会释放这个空间,在实例化之前这个方法就已经存在于内存,跟类的对象没什么关系。子类中如果定义了相同名称的静态方法,并不会重写,而应该是在内存中又分配了一块给子类的静态方法,没有重写这一说,只是单纯的名字重复了。
父类代码
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("子类的一般方法"); } }
输出结果是:
父类的静态方法
子类的一般方法
当父类引用指向子类对象,只会调用父类的静态方法,此行为并不具有多态性!只能说明子类能继承父类的静态方法!静态方法与对象无关!