這是一個更多的拼圖比問題。我有以下代碼:嵌套類中的私有構造函數的範圍
public class PrivateBaseConstructor {
public static class BaseClass {
private BaseClass() {
}
}
public static class DerivedClass extends BaseClass {
public DerivedClass() {
super(); // 1*
}
}
}
這裏呼籲1 *允許情況下,雖然基類的構造函數是private
。如果我們寫的類作爲單獨的班,同一個包:
BClass.java
public class BClass {
private BClass() {
}
}
DClass.java
public class DClass extends BClass {
public DClass() {
super(); // 2*
}
編譯器示意這是在2 *錯誤,因爲基類構造函數是不可見的。
爲什麼編譯器在我的第一個場景中不會引發錯誤,當這兩個類在一個類中聲明爲靜態時?
+1僅供參考! – Anshu