Objective-C 继承、多态、动态类型与动态绑定详解
1. 继承扩展:添加新实例变量
在面向对象编程中,继承是一种强大的机制,它不仅允许我们为类添加新方法,还能添加新的实例变量。这种扩展是累积性的,通过继承,我们只能添加方法或实例变量,对于方法,还可以进行重写,但不能减少它们。
以简单的 ClassA
和 ClassB
类为例,我们可以为 ClassB
添加一个新的实例变量 y
:
@interface ClassB: ClassA
{
int y;
}
-(void) printVar;
@end
尽管从上述声明看, ClassB
似乎只有一个实例变量 y
,但实际上它有两个:从 ClassA
继承的变量 x
和自身定义的 y
。
下面是一个完整的示例代码:
// Extension of instance variables
#import <Foundation/Foundation.h>
// Class A declaration and definition
@interface ClassA: NSObject
{
int x;
}
-(void) initVar;
@end