1、研究其他作者关于单继承和多继承的观点。为什么像Smalltalk和Scala这样的语言不支持多继承?
语言设计中的多继承支持
Smalltalk
Smalltalk不支持多继承主要是为了保持语言的简单性和一致性,避免多继承带来的菱形继承等复杂问题,使系统更易于理解和维护。
Scala
Scala不支持传统多继承,是因为它通过特质(trait)来实现类似多继承的功能。特质结合了接口和混入的特性,既避免了多继承的复杂性,又能灵活地复用代码,同时还保证了类型系统的安全性和清晰性。
2、解释类、子类、超类、实例变量、方法、构造函数和辅助构造函数的含义。
类与对象相关概念
类(Class)
定义了数据和操作这些数据的程序的组合,作为创建新实例的模板。 不持有数据 ,但规定实例中持有的数据。
子类(Subclass)
从另一个类继承的类,自身也是类。 一个类可以有多个子类 。
超类(Superclass)
当前类所继承的父类。在 Scala 中, 一个类只能有一个超类 。
实例变量(Instance variable)
在类中定义,但每个实例中都会维护一个副本,拥有自己的值。
方法(Method)
在类中定义,类中仅维护一份副本,但在对象的上下文中执行。
构造函数(Constructor)
用于在实例在内存中创建后、其他代码访问该实例之前初始化属性。
辅助构造函数(Auxiliary constructor)
可扩展基础构造函数的功能,但 必须直接或间接调用基础构造函数 。

最低0.47元/天 解锁文章
1239

被折叠的 条评论
为什么被折叠?



