OC中继承使用":",如:NSObject 表示继承自NSObject类。单继承,即只有一个父类。
父类Shape::
//Shape.h
@interface Shape:NSObject{
NSString* fillColor;
}
-(void)setFillColor:(NSString *)color;
-(void)draw;
@end
//Shape.m
@impementation Shape
-(void)setFillColor:(NSString *)color{
fillColor = color;
}
-(void)draw{
}
@end
子类Circle
//Circle.h
@interface Circle:Shape{
int radius;
}
-(void)setRadius:(int)r;
@end
//Circle.m
@implementation Circle
-(void)setRadius:(int)r{
radius = r;
}
//重写draw方法,不需要任何关键字
-(void)draw{
NSLog(@"draw circle, fillColor is %@ and radius is %d", fillColor, radius);
}
@end;
//另一个子类Rectangle
//Rectangle.h
@interface Rectangle:Shape
@end;
//Rectangle.m
@implementation Rectangle
-(void)draw{
NSLog(@"draw rectangle");
}
@end
实例化
Circle * c = [Circle new];
[c setFillColor:@"red"];
[c setRadius:10];
[c draw];
Rectangle *r = [Rectangle new];
[r draw];