super的常见使用
嵌套
- negotiate {
... return [super negotiate];
}
super的常见使用
复用
- (id)init {
if (self = [super init]) { ...
}
}
把核心逻辑集中在父类的实现中,子类进行一些边缘处理
 
第二眼的self
self在实例方法中,
作为一个隐藏变量,可以被重新赋值
self
可以当作执行方法的实例本身
类方法往往是用来对本类的实例进行处理,而不是对 类对象进行处理
self
然而在类方法中,
理的实例对象
代表的是类对象,而不是正在处
第二眼的self
错误的例子:
+ (Rectangle *)rectangleOfColor:(NSColor *) color {
self = [[Rectangle alloc] init]; // BAD [self setColor:color]; return [self autorelease];
}
第二眼的self
正确的例子:
+ (id)rectangleOfColor:(NSColor *)color {
id newInstance = [[self alloc] init]; // EXCELLENT [newInstance setColor:color]; return [newInstance autorelease];
}
构建新的工程,定义类来描述面向对象课程练习中的
个系统。每个系统对应一个工程。
建立新的工程,定义一些相互继承的类来描述常见交 通工具的分类关系。