You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

子类间可否协同?Ingredient继承Product后能否与Pizza子类正常工作

结论

完全可以,这反而是非常合理的复用设计,不会和Pizza子类的逻辑产生冲突。

原因说明

  • 继承的核心作用之一就是复用相同的属性和逻辑,既然Ingredient和Product的属性完全一致,比如都包含名称、单价、库存、计量单位这类通用字段,还有计算成本、校验库存这类通用方法,直接继承Product可以完全避免重复写冗余代码,也方便后续统一维护所有商品类的通用逻辑。
  • 继承关系和组合关系本身是独立的:Ingredient继承Product只是复用通用能力,而Pizza持有Ingredient实例列表是两类的组合关联,两种关系不会互相干扰。实际开发中反而会更便捷,比如你实现Pizza的成本核算逻辑时,直接遍历Ingredient列表调用继承自Product的getUnitPrice()方法累加即可,不需要额外做属性适配。

可扩展空间

如果后续Ingredient需要新增专属逻辑,比如「额外添加时的加价比例」「是否允许顾客自定义加量」这类只属于配料的规则,你只需要在Ingredient子类中单独扩展即可,不会影响Product基类以及Drink、Pizza子类的原有逻辑。


内容的提问来源于stack exchange,提问作者Yana_dublex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 16:39:02