次のことを考慮してください。
  public abstract class Item {
     String name;
     String description;
     //concrete getters and setters follow
  }
   public class InventoryItem extends Item {
     //empty subclass of Item 
   }
  public class CartItem extends Item {
     int quantity;
     int tax;
     //getters and setters for quantity and tax follow
  }
InventoryItemは販売可能なアイテムを表し、CartItemはカートに追加されるアイテムを表すため、数量や税金などの追加のプロパティがあります。このシナリオでは、抽象クラスItemの空のサブクラスがあっても大丈夫ですか?
オプション2:空のItemインターフェースを持つことができます。InventoryItemはItemを実装し、名前と説明のプロパティを定義し、ゲッターとセッターを持ちます。CartItemはInventoryItemから拡張され、数量と税金をプロパティとして定義し、ゲッターとセッターがあります。
オプション3:アイテムインターフェイスがある方が良いでしょうか。InventoryItemはItemを実装します。次に、'has-an' Itemと2つのプロパティ、つまり税金と数量を持つCartItemクラスを作成できます。