zoukankan      html  css  js  c++  java
  • Java通过继承外部类来建立该外部类的protected内部类的实例(转)

    原文链接:http://blog.sina.com.cn/s/blog_7de00ff60102xffx.html

    如果想要在外部类的导出类(子类)中建立该外部类的为protected权限的内部类的实例,需要把该protected权限的内部类的构造器的权限设置为public.否则,编译器将报错。

    我们可能会理所当然地认为,既然我继承了该外部类,我就有权限去建立这个外部类的成员——protected权限的内部类的实例,实际上并非如此。由于我们没有显式地去建立该protected权限的内部类的构造器,编译器就会在编译的时候自动帮该protected内部类建立一个默认构造器,默认构造器的访问权限也将和该内部类的权限一致,同为protected,也就是说只有该内部类的导出类(子类)和与该内部类同一个包的类才有权限调用protected权限的构造器。而要创建一个类的实例,必须经由构造器,既然只有该内部类的导出类(子类)和与该内部类同包的类才能调用它的构造器的话,那么也就说明,按照默认情况(不自己建立public权限的该内部类的构造器),只有该内部类的导出类(子类)和与该内部类同包的类才能建立它的实例。

    综上,如果我们想要通过继承某外部类来建立该外部类的成员——protected权限的内部类的实例的话,请把该protected权限的内部类的构造器的权限设置为public。

  • 相关阅读:
    VBA trouble
    深入浅出Automation Anywhere
    sqlserver--install/uninstall
    linux遇到的问题
    Java并发编程:线程池的使用(转载)
    java——线程
    关于项目管理工具 maven
    从xml文件取值
    jquery
    小结-9.20
  • 原文地址:https://www.cnblogs.com/lfxiao/p/11400154.html
Copyright © 2011-2022 走看看