码迷,mamicode.com
首页 > 编程语言 > 详细

Java通过继承外部类来建立该外部类的protected内部类的实例(转)

时间:2017-08-15 10:23:08      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:lock   调用   权限设置   protect   java   否则   通过   blog   public   

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

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

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

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

 

在编程思想第10章第6个问题会出现这个问题。

Java通过继承外部类来建立该外部类的protected内部类的实例(转)

标签:lock   调用   权限设置   protect   java   否则   通过   blog   public   

原文地址:http://www.cnblogs.com/aigeileshei/p/7362346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!