声明一个QYShape 的类
此时Circle就继承了QYShape类的成元方法和成员变量
(oc的继承为单一继承,不允许多继承)
对对应的方法进行方法重构(override).
方法调度过程:当代码发送消息时,oc的方法调度程序将在当前类中搜索相应的方法。
如果调度程序无法在接收消息的对象中找到相应的方法,它就会在该类的超类中进行查找
super关键字:它既不是参数也不是实例变量,而是由由oc编译器提供的功能,其作用是一种直接在子类调用超类的方法
@interface QYShape : NSObject
{
ShapeColor fillColor; //该类有两个成员变量
ShapeRect bounds;
}
- (void)setFillColor:(ShapeColor)fillColor;
- (void)setBounds:(ShapeRect) bound; //对象的成员方法
- (void)draw;
- (NSString*)colorName; //私有方法
@end
在声明一个Ciecle类继承QYShape此时Circle就继承了QYShape类的成元方法和成员变量
(oc的继承为单一继承,不允许多继承)
#import "QYShape.h"
@interface Circle : QYShape
@end
Circle类方法的实现
@implementation Circle
- (void)draw
{
NSLog(@"draw circle at %d,%d,%d,%d,%@",bounds.x,bounds.y,bounds.width,bounds.height,[self colorName]);
}
@end
我们已经知道其超类(QYShape)中已经有draw方法,如果不想继承超类的方法,需要在类实现里面对对应的方法进行方法重构(override).
方法调度过程:当代码发送消息时,oc的方法调度程序将在当前类中搜索相应的方法。
如果调度程序无法在接收消息的对象中找到相应的方法,它就会在该类的超类中进行查找
super关键字:它既不是参数也不是实例变量,而是由由oc编译器提供的功能,其作用是一种直接在子类调用超类的方法