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();//编译通过 } }
原文地址:https://www.cnblogs.com/erlangha/p/12733944.html