现在的位置: 首页 > 综合 > 正文

JAVA 方法 默认访问级别

2013年10月12日 ⁄ 综合 ⁄ 共 400字 ⁄ 字号 评论关闭

一直认为默认访问级别的java 方法对子类是不可见的,也就是不能被继承的,但是下面的例子挑战了这个看法

public class TT {
    public static void main(String[] args) {
        B b=new B();
        System.out.println(b.getA());
                  System.out.println(b.getB());
    }
}

class A {
    int x = 1;
    int getA() {
        return x;
    }
}

class B extends A {
    int x = 2;
    int getB() {
        return x;
    }
}

这个getA明显是默认访问级别private,为什么B能调用getA()?

原来默认的访问级别是package-private, 意思是该方法对同一package中的class是可见的,也是可继承的。

如果把A的类访问级别改为public,把B放到另一个package中,那么B将不能访问A的getA()方法。

 参考

抱歉!评论已关闭.