具体的には書けなくて申し訳ないですが,例えば

2次元を操作出来るHoge2クラスがあります.
Hoge2を実装後,1次元しか操作出来ないHoge1も必要になりました.
Hoge1を実装しようと思ったのですが,
Hoge1とHoge2では共通部分が多かったため,
共通部分の処理内容(インスタンスメソッド)を持つCommonHogeクラス
を作ろうと思いました.
Hoge1とHoge2は,CommonHogeクラスを継承します.
しかし,CommonHogeクラスはインスタンスを作る必要もなく,
Hoge1とHoge2で使われることによって初めて意味が出てきます.

CommonHogeクラス自体を見せたくない(そして,
単独で使うような危険性を無くしたい)のですが,
インスタンスを作る意味はないので,その意味を込めて
abstractメソッドもないのに,今はCommonHogeクラスをabstractにした上で,
コンストラクタをprivateにしています.

これってどうなんでしょうか?