次のことを考慮してください。
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クラスを作成できます。