Java の作法に従うというのであれば interface の領分やな

データの持たせ方についてはクラスの継承から考えるのが正解だけど
動作(メッセージや品表の違いをどう扱うか)についてはデータモデリングではなくロジック側の領分