继承&类方法

闲言少叙,直接上代码:

#import <Foundation/Foundation.h>
@interface Circle : NSObject
@property (nonatomic,assign) float diameter;
-(instancetype) initWithDiameter:(float)d;
@end
#import "Circle.h"
@implementation Circle
-(instancetype) init {
    return [self initWithDiameter:3];
}
-(instancetype) initWithDiameter:(float)d {
    self = [super init];
    if (self) {
        self.diameter = d;
    }
    return self;
}
@end
#import "Circle.h"
@interface ColoredCircle : Circle
@property (nonatomic,retain) NSString* color;
-(instancetype) initWithDiameter:(float)d andColor:(NSString*)c;
+(ColoredCircle*) star;
@end
#import "ColoredCircle.h"
@implementation ColoredCircle
-(instancetype) init {
    return [self initWithDiameter:6 andColor:@"blue"]; // default diameter is 6, default color is "blue"
}
-(instancetype) initWithDiameter:(float)d andColor:(NSString *)c {
    self = [super initWithDiameter:d];
    if (self) {
        self.color = c;
    }
    return self; 
}
+(ColoredCircle*) star {
    ColoredCircle *s = [[ColoredCircle alloc] initWithDiameter:1.0 andColor:@"white"];
    return s;
}
@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容