IItemインターフェイスで必要なメソッドを全部宣言、リストとかは基本的に全部IItem経由で使用する
IItemを継承するAbstractItemに空の実装を全部実装
AbstractItemを継承するAItemでAに必要な実装だけオーバーライド
AbstractItemを継承するBItemでBに必要な実装だけオーバーライド