通常構造函數是public的, 今天無意間寫了一個default的構造函數, 在另外一個包裡面使用的時候居然發現The constructor is not visible,於是有了興趣, 試驗發現private, protected都是not visible.回去翻書《Thinking in java》關於構造函數那一節也沒有講。
寫了幾個例子,發現構造函數也遵循普通函數的訪問機制, 即:
public:所有的類都可以使用;
protected: 本包以及子類可以使用;
default:本包可以使用;
private:僅本類可以使用。
所以:
如果構造函數是private的,則不可被繼承;也阻止了本類被繼承(如果只有這一個構造函數的話).