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 )

Java的权限修饰符(public,protected,default,private)

JAVA中的权限修饰符

java中的访问修饰符

Java访问权限修饰符

Java语言中的权限修饰符