访问控制中默认,public,private,protected区别?
Posted mark-to-win
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了访问控制中默认,public,private,protected区别?相关的知识,希望对你有一定的参考价值。
(比如一个类中的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
。。。。。。。。。。。
详情请见:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner3_web.html#InheritanceAccessControl
以上是关于访问控制中默认,public,private,protected区别?的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中,public、private、protected 和没有访问修饰符有啥区别?