tor alloc] init];
self.aCPU = [[IntelCPU alloc] init];
}
return self;
}
@end
经过声明组件属性,为组件的对象指针分配内存。我们就使用成型的组件快速的制作好了一个功能完整的电脑。
4,super关键字
通常继承和复合会一同使用,来快速构造一个复杂的对象。
例如现在有一个需求,要求我们快速制作一个可以除甲醛的高级空调。通常我们并不是从零开始研发,而是基于一定基础开始制作。
在这里,我提供了两个对象作为研发的基础
- Kongtiao类,具有制冷方法
- ChuJiaquan类,具有除甲醛的方法
以下是Kongtiao类的声明
@interface Kongtiao : NSObject
-(void)zhiling;
@end
以下是ChuJiaquan类的声明
@interface ChuJiaQuan : NSObject
-(void)chuJQ;
@end
首先明确我们制作的是一个空调,所有我们创建一个高级空调类继承与空调类。
然后高级空调需要有除甲醛的功能,我们通过复合模式,把除甲醛的模块作为高级的空调的一部分。
最后我们重写父类的制冷方法,在制冷过程中添加除甲醛的步骤。但是在重写的方法会覆盖掉父类原有的方法。这里我们需要在重写方法中手动调用父类原始方法。就需要用到super关键字。
@interface NewKongtiao : Kongtiao
@property(strong, nonatomic) ChuJiaQuan * cJQ;
@end
@implementation NewKongtiao
- (instancetype)init
{
self = [super init];
if (self)
{
self.cJQ = [[ChuJiaQuan alloc] init];
}
return self;
}
-(void)zhileng
{
[super zhileng];
[self.cJQ chuJQ];
}
@end
这样我们在使用高级空调制冷的同时,也同时能够除甲醛了。