日期:2014-05-20  浏览次数:20713 次

静态方法,静态块可以继承的吗?
静态方法,静态块可以继承的吗?

------解决方案--------------------
不可以
------解决方案--------------------
不会
------解决方案--------------------
还没有遇到过,静态块可以被继承的情况……
------解决方案--------------------
静态方法可以继承,但不能在子类中覆盖!
静态块不能继承。

------解决方案--------------------
不好意思,改正一下我的说法,通下面例子的测试,静态方法可以继承,也可以被覆盖!
Java code

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加载子类时,先加载父类,加载父类时会执行静态块,子类谈何继承父类的静态块!