Java中的权限修饰符(protected)
Posted erlang-sh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的权限修饰符(protected)相关的知识,希望对你有一定的参考价值。
博客来源:
参考博客源:https://blog.csdn.net/asahinokawa/article/details/80777302
之前认识片面,现在得已纠正
误解区:protected修饰的成员对其子类可见.
现在的片面理解是:protected修饰的成员对其子类的可见分为两种情况:
1.子类与父类在同一个包中时父类的protected成员是包内可见子类可见的;
2.子类与父类不在同一个包中时子类实例可以访问其从父类继承而来的protected成员,而不能访问父类实例的protected成员。
代码分析如下:
package com.erlang.modifer01; //父类Animal
public class Animal { private String name; protected void run(){ } }
package com.erlang.modifer01; //同包下的类 public class Dog{ public static void main(String[] args){ Animal anl = new Animal(); anl.name = "erhua";//编译通过 anl.run();//编译通过 } }
package com.erlang.modifer02;
import com.erlang.modifer01; //不同包下的子类 public class Dog extends Animal{ public static void main(String[] args){ Animal anl = new Animal(); anl.name = "erhua";//编译报错 anl.run();//编译报错 Dog dog = new Dog(); dog.name = "erha";//编译通过 dog.run();//编译通过 } }
以上是关于Java中的权限修饰符(protected)的主要内容,如果未能解决你的问题,请参考以下文章
JAVA 中的权限访问修饰符(public,protected,default,private )