flutter 我试图扩展一个类,但在此过程中排除了某个属性

7lrncoxx  于 2023-04-22  发布在  Flutter
关注(0)|答案(1)|浏览(104)

我有一个类Food,我把它扩展成了一个类OrderedItem,但我试图在不使用num score属性的情况下扩展它。这可能吗?

Food {
      String imgUrl;
      String desc;
      String name;
      String waitTime;
      num score;
      int price;
      int pq;
      int quantity;
      bool favourited;
      List<Variation> variations;
      Variation selectedVar;
      String about;
      bool highlight;
    }

OrderedItem

class OrderedItem extends Food {
  Variation selectVar;

  OrderedItem(
      this.selectVar,
      super.imgUrl,
      super.desc,
      super.name,
      super.pq,
      super.waitTime,
      super.score, //I'm trying to remove this in the new class
      super.price,
      super.quantity,
      super.variations,
      super.about,
      super.favourited,
      {super.highlight = false});
}
zqdjd7g9

zqdjd7g91#

不,不可能“排除”属性。
你应该重构你的继承链:
Food首先不应该包含score属性。
从食物中删除score属性。
引入一个新的类ScoredFood,它扩展了Food并添加了score属性。
现在OrderedItem可以扩展Food而不继承score属性。
此外,请重新考虑是否应该在这里使用继承或组合。
OrderedItem真的是Food吗?或者Food只是OrderedItem的一部分(因此应该可以作为food的属性访问)?

相关问题