深入解析Java中protected关键字的用法与权限范围

目前,成都创新互联网公司已为超过一千多家公司提供了诸如网站构建,域名,网站空间,网站托管,企业网站设计,网站维护等的服务。该公司将遵守面向客户的策略。我们将维护“和谐,参与protect用法,激情”的文化protect用法,并与客户和合作伙伴一起工作,共同发展和发展。
#
: #
父类的修改类成员包在软件包中可见,其子类可见。
#
父班和子类不在同一软件包中。儿童类只能访问从父类继承的成员,并且无法访问父类实例化的成员。
#
我们可以通过以下方法可见性进一步理解关键字。当遇到涉及成员的呼叫时,您必须首先确定成员来自何处以及其可见性范围是什么,然后您可以确定当前使用情况是否可行。
#
例子: #
//示例一
package p1;
public class Father1 {
protected void f() {} // 父类Father1中的protected方法
}
package p1;
public class Son1 extends Father1 {}
package p11;
public class Son11 extends Father1{}
package p1;
public class Test1 {
public static void main(String[] args) {
Son1 son1 = new Son1();
son1.f(); // Compile OK ----(1)
son1.clone(); // Compile Error ----(2)
Son11 son = new Son11();
son11.f(); // Compile OK ----(3)
son11.clone(); // Compile Error ----(4)
}
} #
#
在上面的示例中,首先查看(1)(3),其中f()方法从类中继承,其可见性是 P1及其子类SON1和SON11,以及由于类Test1,该类称为F( )方法包装也是P1,因此在(1)(3)上进行了编译并传递。其次,查看(2)(4),其中clone()方法的可见性是java.lang包及其所有子类。对于“ son1.clone()”的陈述;和“ son11.clone();”,两个用户的clone()在SON1和SON11的类中可见,但对test1不可见,因此未传递(1)(3)的汇编。
#
总结 #
这是最难理解Java类成员访问修饰符的最难。编程时,遇到涉及的呼叫时,您必须首先确定成员来自何处以及其可见性范围是什么,然后正确使用它。 #