倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

抽象クラスのコンストラクタのアクセス修飾子

抽象クラスのコンストラクタのアクセス修飾子は「public」でも「protected」でも可能ですが、「public」にしていても外部から呼び出すことは出来ないので(抽象クラスはインスタンス化できない)、「protected」 にしておきましょう。

開発の際、使用しているエディタがある程度高機能なら、アクセス修飾子からコンテンツ・アシストの候補を絞り込んでくれるでしょう。 もし「public」を指定していた場合、そのコンストラクタが候補には現れても、それを選択した瞬間にエラーが表示されてしまいます。

似たような事柄に、「private」なコンストラクタしか持たないクラスは「final」にしておくというものもあります。 「private」なコンストラクタしか持たないようなクラスとは、だいたい Singleton クラスや Utility クラスです。 クラスを「final」にしておくと、サブクラスを作成するウィザードなどで警告を出してくれます(Eclipse の場合)。