访问控制中默认,public,private,protected区别?

2.继承的访问控制:

(比如一个类中的protected成员对于“不同的包中的非子类”是不可见的。

说明:1.任何public的内容可以被从任何地方访问。 2.private的成员不能被该类外看到。 3.如果一个成员不含有一个明确的访问说明,马克-to-win,它只对同包可见, 不同包不可见。这是默认访问。 4.protected是同包都可见,且子类都可见。又不同包同时又不是子类,就不可见。

以下就上表中的一些难于理解的知识点给出实例进行分析:

2.1 以下例子说明:1)子类可以访问protected 2)同一包中非子类(Test)可以访问protected。

例1.2.1---

class AMark {
    protected int i;
    protected void printI() {
        System.out.println("i=" + i);
    }
}

class B extends AMark {
    public void printIInB() {
        System.out.println("in B i=" + i);//子类可以访问protected
    }
}

public class Test {
    public static void main(String[] args) {
        AMark a=new AMark();
        a.i=7;//protected是同一包中对非子类(Test)可见,
        a.printI();
        B b = new B();
        b.i = 10;//protected是同一包中对非子类(Test)可见,马 克 -t o-w i n
        b.printI();
        b.printIInB();
    }
}

更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44639795/article/details/103122280

posted @ 2021-01-20 15:02  师徒行者  阅读(193)  评论(0编辑  收藏  举报