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。

  • 相关阅读:
    ECharts之柱状图 饼状图 折线图
    Vue自定义指令(directive)
    HDU 1231 最大连续子序列
    POJ 2533 Longest Ordered Subsequence
    HDU 1163 Eddy's digital Roots
    HDU 2317 Nasty Hacks
    HDU 2571 命运
    HDU 4224 Enumeration?
    HDU 1257 最少拦截系统
    HDU 2740 Root of the Problem
  • 原文地址:https://www.cnblogs.com/lfxiao/p/11400154.html
Copyright © 2011-2022 走看看