我有一个类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});
}
1条答案
按热度按时间zqdjd7g91#
不,不可能“排除”属性。
你应该重构你的继承链:
Food
首先不应该包含score属性。从食物中删除
score
属性。引入一个新的类
ScoredFood
,它扩展了Food
并添加了score属性。现在
OrderedItem
可以扩展Food
而不继承score属性。此外,请重新考虑是否应该在这里使用继承或组合。
OrderedItem
真的是Food
吗?或者Food
只是OrderedItem
的一部分(因此应该可以作为food
的属性访问)?