打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JAVA中protected的作用

类NewObject中有protected修饰的方法或者属性,则:

  • 同一个包中:

    1. 可在同一个包里的子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性,即.操作访问。

    2. 可在同一个包里的非子类中实例化NewObject类获得对象,然后可用该对象访问protected修饰的方法或者属性。

    3. 可在同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类在同一个包中)获得对象,然后可用该对象访问protected修饰的方法或者属性。

    4. 可在同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被同一个包中的子类继承。

  • 非同一个包中:

    1. 可在非同一个包里的子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。

    2. 可在非同一个包里的非子类中实例化NewObject类获得对象,但无法用该对象问protected修饰的方法或者属性。

    3. 可在非同一个包里的非子类中实例化NewObject类的子类(该子类和NewObject类不在同一个包中)获得对象,但无法用该对象问protected修饰的方法或者属性。

    4. 可在非同一个包里的NewObject类的子类中调用NewObject类中protected修饰的方法或者属性,即protected修饰的方法和属性可被不同一个包中的子类继承。

package 1:

  1. BaseClass:

    1. package package_1;
    2. // 相当于NewObject类
    3. public class BaseClass {
    4. // protected方法
    5. protected void protectedMethod() {
    6. System.out.println("This is BaseClass");
    7. }
    8. }
  2. SubClass:

    1. package package_1;
    2. public class SubClass extends BaseClass {
    3. }
  3. MainClass:

    1. package package_1;
    2. public class MainClass {
    3. public static void main(String[] args) {
    4. BaseClass b1 = new BaseClass();
    5. SubClass s1 = new SubClass();
    6. b1.protectedMethod(); // 父类的protected方法可在同一个包中的其它类中被访问
    7. s1.protectedMethod(); // 子类中继承了父类的protected方法
    8. }
    9. }

package 2:

  1. SubClass:

    1. package package_2;
    2. import package_1.BaseClass;
    3. // 继承了不在同一个包中的父类 BaseClass
    4. public class SubClass extends BaseClass {
    5. public void testMesthod(){
    6. BaseClass b1 = new BaseClass();
    7. b1.protectedMethod(); // 编译器报错。父类的protected方法不可以在不同一个包中的子类中被访问
    8. this.protectedMethod(); // 子类继承了父类protected方法
    9. }
    10. }
  2. MainClass:

    1. package package_2;
    2. import package_1.*;
    3. public class MainClass {
    4. public static void main(String[] args) {
    5. BaseClass b1 = new BaseClass();
    6. b1.protectedMethod(); // 编译器报错。父类的protected方法不可以在不同一个包中的其它类中被访问
    7. SubClass s1 = new SubClass();
    8. s1.protectedMethod(); // 编译器报错。子类的protected方法不可以在不同一个包中的其它类中被访问
    9. }
    10. }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中访问修饰符protected的权限
java中protected的权限
javascript 的几个 tip
淡谈泛型约束T(转)
当心掉进Python多重继承里的坑
PHP: 构造函数和析构函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服