judylian2024 发表于 2024-3-2 09:30:16

子类和父类同一属性的变量名可以不一样吗?

第060讲:类和对象课后作业

最后一题帮开餐馆的小花开发一个点餐程序

答案代码中类meet 和Vegetable定义的属性是nums,但后面类Menu调用时又变成了num,为何同一个属性变量名可以不一样呢?

FishC 发表于 2024-3-2 09:30:35

在面向对象编程中,子类是从父类继承而来的,子类可以拥有父类的属性和方法。当子类想要重新定义父类的属性时,我们通常会使用与父类不同的变量名,以避免混淆。这是因为子类可以添加自己的属性,而不会影响父类的属性。

在答案代码中,类Menu调用了类meet和Vegetable中定义的nums属性,但使用了不同的变量名num。这是因为在Menu类中,我们可能希望对nums属性进行特殊处理或者重载,使其具有不同的行为。为了避免与meet和Vegetable类中的nums属性混淆,我们给它起了一个不同的名字。

当然,如果你不需要对父类的属性进行特殊处理,也可以直接使用与父类相同的变量名。不过,这样做可能会导致代码可读性降低,容易出错。

综上所述,子类和父类同一属性的变量名可以不一样,这是为了方便子类对属性进行特殊处理或者重载。但建议在实际编程中尽量保持命名一致,以提高代码可读性。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

歌者文明清理员 发表于 2024-3-2 11:13:22

不是不一样,nums 和 num 是两个玩意
页: [1]
查看完整版本: 子类和父类同一属性的变量名可以不一样吗?