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

huangapple go评论59阅读模式
英文:

I'm trying to extend a class but exclude a certain property in the process

问题

I have a class Food and I extended it to a class OrderedItem but I'm trying to extend it without the num score property. Is this possible?

我有一个名为 Food 的类,我将它扩展成了一个名为 OrderedItem 的类,但我想在新类中去掉 num score 属性。这是否可能?

英文:

I have a class Food and I extended it to a class OrderedItem but I'm trying to extend it without the num score property. Is this possible?

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});
}

答案1

得分: 1

不,不可能“排除”一个属性。

您应该重新构建您的继承链:
Food 不应该在第一次包含一个分数属性。
从食物中删除 score 属性。
引入一个新的类 ScoredFood,它扩展了 Food 并添加了分数属性。
现在 OrderedItem 可以扩展 Food,而不继承分数属性。

此外,请重新考虑在这里是否应该使用继承或组合。
一个 OrderedItem 真的是一个 Food 吗,还是一个 Food 只是一个 OrderedItem 的一部分(因此应该作为其 food 属性可访问)?

英文:

No, it is not possible to "exclude" a property.

You should instead refactor your inheritance chain:
Food should not include a score property in the first place.
Remove the score property from food.
Introduce a new class ScoredFood which extends Food and adds the score property.
Now OrderedItem can extend Food without inheriting a score property.

Besides, reconsider whether you should be using inheritance or composition here.
Is an OrderedItem really a Food, or is a Food just part of an OrderedItem (and should thus be accessible as a food property of it)?

huangapple
  • 本文由 发表于 2023年4月17日 22:14:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/76036115.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定