本章主要讲述了简单的类和继承的问题
在OC里面,继承主要注意几点即可:
- self于super的区别
self代表当前类(的实例),而super则是其父类(的实例),所以在重写(override)方法时候就应该注意了 。 - 初始化方法
这个OC的初始化方法的继承有一定的模块性,一般都参考这种形式
- (id)init{
self = [super init];
if (self != nil) {
// Do something here!
}
return self;
}
- 上面提到的重写,不管是重写初始化的方法,还是其他方法,如果需要调用父类的方法,一定要主要不能产生循环调用。循环调用如下:
父类
- (id)init{
self = [super init];
if (self != nil) {
// Do something here!
}
return self;
}
- (id)initWithName:(NSString *)name{
self = [super init];
if (self != nil) {
// Do something here!
}
return self;
}
子类
- (id)init{
self = [super initWithName:@"defaultName"]; //此处会导致循环调用
if (self != nil) {
// Do something here!
}
return self;
}