インスタンス生成させないためには、privateコンストラクタなのか?
staticメソッドで構成されるユーティリティクラスなどで、
不可視コンストラクタとして
public class ClassA{ private ClassA(){ } }
とやるけれど、拡張することもあるかもしれないのであれば
public abstract class ClassA{ }
とこっちのがよいと思った。
(フレームワークのソース*1見てて思った。)
抽象クラスはインスタンス化できない、インスタンス化するには、継承したクラス(派生クラス)でしかできない。
抽象クラスのstaticな実装メソッド(抽象メソッドではない)なら、クラス.メソッドで実行できるからね。
なるほど!!! と思ったのであった。