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];
}
构建新的工程, 定义类来描述面向对象课程练习中的
个系统。每个系统对应一个工程。
建立新的工程, 定义一些相互继承的类来描述常见交 通工具的分类关系。