如果静态成员没有继承,那么为什么我们可以使用子类引用来访问它

时间:2015-06-07 18:11:02

标签: java

如果static成员没有继承,那么为什么我们可以使用子类引用来访问它。与给定示例中一样,我们不能通过使用A类引用来访问类A中的静态方法。

  package me.addicted.to.java;

    public class B extends A
    {

        public static void main(String[] args)
        {
            A.method();
            B.method();
            A a1 = new B();
            B test = new B();
            A arr[] = {a1,test};
            for(int i = 0; i < 2; i ++){
                arr[i].method();
            }
        }

    }
    class A
    {
        static int i = 10;
        static void method(){
            System.out.println("From Hello A");
    }
    }


Output : 

From Hello A

From Hello A

From Hello A

From Hello A

1 个答案:

答案 0 :(得分:1)

好吧,根据JLS的术语,static成员 继承 - http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.8

有一个例外 - 接口中的静态方法不会被继承。