原文連接:http://blog.sina.com.cn/s/blog_7de00ff60102xffx.htmlhtml
若是想要在外部類的導出類(子類)中創建該外部類的爲protected權限的內部類的實例,須要把該protected權限的內部類的構造器的權限設置爲public.不然,編譯器將報錯。htm
咱們可能會理所固然地認爲,既然我繼承了該外部類,我就有權限去創建這個外部類的成員——protected權限的內部類的實例,實際上並不是如此。因爲咱們沒有顯式地去創建該protected權限的內部類的構造器,編譯器就會在編譯的時候自動幫該protected內部類創建一個默認構造器,默認構造器的訪問權限也將和該內部類的權限一致,同爲protected,也就是說只有該內部類的導出類(子類)和與該內部類同一個包的類纔有權限調用protected權限的構造器。而要建立一個類的實例,必須經由構造器,既然只有該內部類的導出類(子類)和與該內部類同包的類才能調用它的構造器的話,那麼也就說明,按照默認狀況(不本身創建public權限的該內部類的構造器),只有該內部類的導出類(子類)和與該內部類同包的類才能創建它的實例。blog
綜上,若是咱們想要經過繼承某外部類來創建該外部類的成員——protected權限的內部類的實例的話,請把該protected權限的內部類的構造器的權限設置爲public。繼承