Java中的权限修饰符(protected)

博客来源:

参考博客源:https://blog.csdn.net/asahinokawa/article/details/80777302

之前认识片面,现在得已纠正

误解区:protected修饰的成员对其子类可见.

现在的片面理解是:protected修饰的成员对其子类的可见分为两种情况:

1.子类与父类在同一个包中时父类的protected成员是包内可见子类可见的;

2.子类与父类不在同一个包中子类实例可以访问其从父类继承而来的protected成员,而不能访问父类实例的protected成员。

Java中的权限修饰符(protected)

 代码分析如下:

package com.erlang.modifer01;
//父类Animalpublic 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();//编译通过
    } 
}

相关推荐