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

解决方案 »

  1.   

    不好意思,改正一下我的说法,通下面例子的测试,静态方法可以继承,也可以被覆盖!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("子类");
    }
    }输出为:子类
      

  2.   

    A a = new B();
    a.p();
    应该就是父类了
      

  3.   

    对于多态应该这样测:A b = new B();
    b.p();
      

  4.   

    静态方法可以被继承静态块最终是写到类或接口初始化方法(<clinit()方法>)里的静态方法没有多态,不能被重写,只能被隐藏
      

  5.   

    静态方法不叫继承,叫隐藏。
    下面这篇文章可以帮到你。
    http://download.oracle.com/javase/tutorial/java/IandI/override.html
    另外静态块没有继承吧
      

  6.   

    静态方法可以继承, 但是不能重写, 当父类和子类的静态方法签名相同的时候,子类是 hide(隐藏)了父类的静态方法,而不是重写了父类的静态方法
      

  7.   

    说静态方法可以被继承的可以去看下 scjp。
    误人子弟
      

  8.   

    5楼的例子根本没显示出能重写吧A a = new B();
    a.p();
    这样 如果输出是“子类”说明能重写了,静态方法可以被继承,不能重写
      

  9.   

    求人不如求己,我觉得这种问题,自己test一下不就可以了么?
      

  10.   

    http://topic.csdn.net/u/20081212/18/0FB9B258-BCE3-4BFC-8D45-BB1D5C778338.html
      

  11.   

    静态方法可以被继承,但不可以被重写,在子类里定义相同签名的方法,只能算是隐藏。
    静态属性可以被继承。
    静态块根本就没有继承这一说,静态块是在类加载时进行初始化操作的,当创建子类的对象时会先创建其父类的对象,如果父类里有静态块时,当jvm加载子类时,先加载父类,加载父类时会执行静态块,子类谈何继承父类的静态块!
      

  12.   

    Annoyingly, java will not let you access a static inner class via a child of the parent one.
      

  13.   

    静态方法只跟引用有关系。A a = new B();
    a.P();
    也是调用A类的p()方法,所以静态方法是不存在多态的。