OOP关于类和对象包含两个主要方面,继承和复合(composition)。继承可以定义一个具有父类所有功能的新类。复合中,对象可以引用其它对象。
1.
如 @interface YourObject:NSObject
{
…………
…………
}
@end
冒号后的标示符是需要继承的类。必须注意的是,在Objective-C中每个子类只能有一个超类,这一点与c++不同。也就是说objective-c不支持多继承。若需要改变父类某函数的实现,则需要重写方法。Objective-c支持重写方法,同时仍然调用超类的实现方式。这时需要使用super关键词来调用父类方法。如:
[super init];
2.
@interface Unicycle: NSObject
{
Pedal *pedal;
Tire *tire;
}
@end
Pedal和Tire通过复合的方式组成了Unicycle,严格来讲,只有对象间的组合才能叫复合,而基本类型都被认为是对象的一部分。
一般继承用于is a(是一个)的关系,例三角形是一个形状,汽车是一种交通工具。这样的情况使用继承绝对的ok
一般复合用于has-a(有一个)的关系,例如汽车有一个引擎和四个轮子,形状有一个填充颜色。这样的情况使用复合绝对的ok
既然说到OOP范畴的继承与复合。接下来就顺便把面向对象的专业名词带过一下: