跳转到内容

面向对象编程/子类

来自维基教科书,开放的书籍,面向开放的世界

子类,也称为派生类、继承类或子类,是继承自另一个类/类的语言实体的一个或多个类。虽然不同语言之间类继承的工作方式可能存在一些细微差别,但通常情况下,子类会自动继承其超类或父类的实例变量和成员函数。 [1] 从维基百科页面上关于继承的内容,您可以看到子类是如何定义的。 [2]

class SubClass: visibility SuperClass
{
    // subclass members
};

'Subclass' 末尾的冒号表示它继承自末尾的 "SuperClass"。

不可子类化的类

[编辑 | 编辑源代码]

一些语言有不可子类化的类。这些是没有任何子类的类。可以通过在类声明中添加某些类修饰符来创建不可子类化的类。创建后,不可子类化的类会限制代码的可重用性,尤其是在源代码不可访问时。创建不可子类化的类的类修饰符的几个例子包括 Java 的 'final' 关键字或 C# 的 'sealed' 关键字。这些修饰符是在类关键字和标识符声明之前添加到类声明中的。

由于不可子类化的类没有子类,因此对该类对象的引用或指针可以很容易地推断为引用该类的实例,而不是子类或超类的实例,因为不可子类化的类没有子类,并且对超类的实例会违反类型系统。由于在执行之前就知道引用的对象的精确类型,因此可以使用早期绑定(静态调度)而不是后期绑定(动态调度)。

参考资料

[编辑 | 编辑源代码]
  1. https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
  2. Herbert Schildt (2003). C++ 完整参考. 塔塔麦格劳-希尔教育私人有限公司. 第 417 页. ISBN 978-0-07-053246-5.
华夏公益教科书