>118
最近では、継承したがるのは素人という考え方が一般的。
CommonHogeに共通部分を括りだすのは実装上の都合だから、
集約で作るほうがよい。

集約で実現するにせよ、実装で実現するにせよ、
適切なパッケージ内で実装した上で、CommonHogeをパッケージプライベートに
するのがJava的だと思う。