类 / 继承

@interface Shape : NSObject
@property int lineCount;
-(id) initWithLineCount: (int) lineCount;
@end

@interface Square : Shape
@property int sideLength;
-(id) initWithSideLength: (int) sideLength;
@end

@implementation Shape
-(id) initWithLineCount: (int) lineCount {
    self = [super init];
    if (self) {
        self.lineCount = lineCount;
    }
    return self;
}
@end

@implementation Square
-(id) initWithSideLength: (int) sideLength {
    self = [super initWithLineCount:4];
    if (self) {
        self.sideLength = sideLength;
    }
    return self;
}
@end

Square_1 *square = [[Square_1 alloc] initWithSideLength:5];
//square.lineCount is 4n is "unknown"