日期:2014-05-20 浏览次数:20713 次
package CSDN; public class TestStaticMethodExtends { @SuppressWarnings("static-access") public static void main(String[] args) { B b = new B(); b.p(); } } class A { public static void p() { System.out.println("基类"); } } class B extends A { public static void p() { System.out.println("子类"); } } 输出为:子类
------解决方案--------------------
静态方法可以被继承,但不可以被重写,在子类里定义相同签名的方法,只能算是隐藏。
静态属性可以被继承。
静态块根本就没有继承这一说,静态块是在类加载时进行初始化操作的,当创建子类的对象时会先创建其父类的对象,如果父类里有静态块时,当jvm加载子类时,先加载父类,加载父类时会执行静态块,子类谈何继承父类的静态块!