注意:protected表示只有在子类和同包中可以访问。

需要注意的是,在其他包中,若是创建了父类的对象,但是父类对象访问不了自己类里面用protected修饰的属性,只能由子类访问父类的protected修饰的属性,切记!

而在本类本包中,则可以访问protected修饰的属性!(这个结论不对,下面的是对的!)

参考来源:http://www.cnblogs.com/Victor-Han/p/4861412.html

package 1:

  1. BaseClass:

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

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

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

package 2:

  1. SubClass:

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

      

  2. MainClass:

    package package_2;
    
    import package_1.*;
    
    public class MainClass {
    public static void main(String[] args) {
    BaseClass b1 = new BaseClass();
    b1.protectedMethod(); // 编译器报错。父类的protected方法不可以在不同一个包中的其它类中被访问
    SubClass s1 = new SubClass();
    s1.protectedMethod(); // 编译器报错。子类的protected方法不可以在不同一个包中的其它类中被访问
    }
    }

      

    protected修饰的属性或方法,只在子类里面友好,若不在子类里面,而是在其他包的测试类中,创建的子类对象,是访问不了protected修饰的属性或方法;只有在其他包创建了子类,子类里面才能使用protected修饰的属性或方法!

最新文章

  1. C+命令行+方向键=简易版扫雷
  2. C#中int,string,char[],char的转换(待续)
  3. Java笔记——JavaMail发送邮件
  4. 提示ORA-03113:通信通道的文件结尾解决
  5. javascript 之封装技巧
  6. 新浪微博中tableview中头部信息
  7. 总结一下最近用过的phpcms语法
  8. (转)Maven使用
  9. 64位系统下8G内存仅使用到4G问题的解决方法
  10. Linux.根据进程名关键字杀进程
  11. sqlserver(查看被锁进程)
  12. oracle之触发器
  13. .net正则匹配
  14. 【渗透攻防WEB篇】SQL注入攻击初级
  15. HyperLedger Fabric 1.0的Transaction处理流程
  16. 变更RHEL(Red Hat Enterprise Linux 5.8)更新源使之自动更新
  17. BZOJ4943 NOI2017蚯蚓排队(哈希+链表)
  18. 【2017-2-21】C#分支语句,分支嵌套,变量的作用域
  19. 死磕nginx系列--配置文档解读
  20. Xcode 7.3 cannot create __weak reference in file using manual reference counting

热门文章

  1. IIS日志分析:SC-Status语义
  2. Appium Android 获取包名和 Activity 的几种方法 (转)
  3. es7 class的写法
  4. MySQL NULL 值如何处理?
  5. Google HTML/CSS Style Guide
  6. nyoj29-求置转换问题
  7. open-ldap服务安装(1)
  8. Nginx面试中最常见的18道题 抱佛脚必备
  9. PHP过滤html注释
  10. AtCoder ABC 076D - AtCoder Express