1、java中外部類的訪問修飾符有如下四種:
public,默認,abstract,final
// public,默認,abstract,final。 public class Test1 {} class Test2{} abstract class Test3{} final class Test4{}
- 其中public表示任意位置都可以訪問該類;
- 不寫表示默認訪問修飾符,即在同一個包中可以訪問;
- abstract是表示該類為一個抽象類,不能實例化該類,即不能使用Test3 test3 = new Test3();的方式獲取Test3的實例。如果要使用它則需要找一個類繼承該類;
- final表示該類不能被子類繼承,該類即為最終類,不可再被繼承。
2、為什么不能用private和protected修飾外部類呢?
1、private:用private修飾外部類,表示該外部類不能被其他類訪問,那么定義這個類就失去了意義,所以private只能修飾內部類。內部類的上一級是外部類,那么對應的有四種訪問控制修飾符:本類(private),同包(default),父子類(protected),任何位置(public)。當一個內部類使用了private修飾后,只能在該類的外部類內部使用。
2、protected:受保護的類,同一個包內或者不同包內的子類可以訪問。如果一個類被protected修飾,外部類無法訪問,那又如何繼承。所以用protected也是沒有意義的