使用 super 调用父类构造函数
💡
原文约300字/词,阅读约需1分钟。
📝
内容提要
子类可以使用super()调用其父类定义的构造函数。super()的参数列表应指定父类构造函数所需的参数。子类构造函数中的第一条语句应始终是super()(或super(参数列表)),以便传递参数。使用super()允许父类根据需要构建其自己的子对象并添加功能,而无需子类了解细节。可以使用super()调用父类定义的任何构造函数。调用的构造函数将是与提供的参数相匹配的构造函数。
🎯
关键要点
- 子类可以使用super()调用其父类定义的构造函数。
- 参数列表应指定父类构造函数所需的参数。
- 子类构造函数中的第一条语句应始终是super()或super(参数列表)。
- 子类Triangle使用super(w, h)调用父类TwoDShape的构造函数。
- TwoDShape的构造函数初始化width和height。
- Triangle只需初始化style,width和height由父类处理。
- 使用super()允许父类构建自己的子对象并添加功能,而无需子类了解细节。
- 可以使用super()调用父类定义的任何构造函数,执行的构造函数将与提供的参数匹配。
- super()引用的是直接父类,即使在多层次的继承中也是如此。
- super()必须是子类构造函数中执行的第一条语句,以确保父类部分被初始化。
❓
延伸问答
如何在子类中使用super()调用父类构造函数?
在子类构造函数中,第一条语句应始终是super()或super(参数列表),以调用父类构造函数并传递必要的参数。
super()的参数列表需要包含什么?
参数列表应指定父类构造函数所需的参数,以便正确初始化父类的属性。
使用super()有什么好处?
使用super()允许父类构建自己的子对象并添加功能,而无需子类了解实现细节。
在多层次继承中,super()引用的是哪个类?
super()引用的是直接父类,即使在多层次的继承中也是如此。
Triangle类是如何使用super()的?
Triangle类使用super(w, h)调用父类TwoDShape的构造函数,传递宽度和高度的值。
为什么super()必须是子类构造函数中的第一条语句?
super()必须是第一条语句,以确保父类部分被初始化,之后才能执行子类的构造代码。
🏷️
标签
➡️