Objective-C编程全解(第3版)3.1 继承的概念_Objective-C编程全解(第3版)3.1 继承的概念试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > Objective-C编程全解(第3版) > 3.1 继承的概念

Objective-C编程全解(第3版)——3.1 继承的概念

本章讲述面向对象中的一个重要概念——继承,使用继承 可以方便地在已有类的基础上进行扩展,定义一个具有父 类全部功能的新类。 3.1 继承的概念 3.1.1 父类和子类 我们在定义一个新类的时候,经常会遇到要定义的新类是某个类的扩展或者是对某个类的修正 这种情况。如果可以在已有类的基础上追加内容来定义新类,那么新类的定义将会变得更简单。 像这种通过扩展或者修改既有类来定义新类的方法叫作继承(inheritance)。在继承关系中,被继 承的类称为父类(superclass),通过继承关系新建的类称为子类(subclass)。 继承意味着子类继承了父类的所有特性,父类的数据成员和成员函数自动成为子类的数据成员 和成员函数。除此之外,子类还可以 ● 追加新的方法 ● 追加新的实例变量 ● 重新定义父类中的方法 当然,如果子类中只追加新的实例变量而不变更方法则没有任何意义。子类中重新定义父类的方法 。 让我们来看几个例子。在图 3-1 中,类 B 是类 A 的子类,类 B 继承了类 A 的实例变量和方法, 但重写了 method2。类 C 也是类 A 的子类,类 C 中增加了新的实例变量 z 和新的方法 method3。类 B 和类 C 都是类 A 的子类,无论类 A、类 B 和类 C 的任何一个实例变量都能够执行方法 method1 和 method2。 父类和子类是一种相对的称呼。例如,在上例中,如果以类 B 为父类又派生出一个子类 D,那 么类 B 相对于类 A 是子类,相对于类 D 却为父类。 另外,在集合用语中,子集指的是比较小的集合(相对于父集),但在类的情况下子类一般是父 类的扩展。为了避免这种命名上的混乱,C++ 中把父类称为基类(baseclass),把子类称为派生 类或导出类(derivedclass)。考虑到面向对象的程序设计中一般都使用父类、子类的叫法,本书也 使用这种叫法。 3.1.2 类的层次结构 假如以某个类为父类生成若干子类,然后再继承这些子类并生成更多的子类,如此循环下去就 可能会生成一颗倒立的树,它由通过继承而彼此关联的类组成,这样的树称为类层次结构(class 。 位于类层次最顶端的类称为根类(rootclass),如图 3-2 所示。 NSObject 是 Cocoa 环境下的根类,Cocoa 中所有的类都直接或间接地继承了 NSObjectA。新建的 任何类都必须是 NSObject 或它的继承类的子类。NSObject 中定义了所有 Objective-C 对象的基本 方法。 由于这种类的层次关系,Objective-C 的所有对象都继承了 NSObject 类中定义的各种属性。 Objective-C 的对象能够作为对象来使用,就是因为类 NSObject 中定义了对象的基本功能。 在面向对象的语言中,有的和 Objective-C 一样有唯一根类,例如 Java 和 Smalltalk 等;有的则不 存在唯一根类,如 C++。 更多关于根类的介绍,请参考 8.1 节的内容。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Objective-C编程全解(第3版)》其他试读目录

• 3.1 继承的概念 [当前]
• 3.2 利用继承定义新类
• 3.3 使用继承的程序示例
• 3.4 继承和方法调用
• 3.5 方法定义时的注意事项
• 专栏:Objective-C 与开源软件
• 19.1 多线程
• 19.2 互斥