类 / 继承

@protocol Shape
@property int lineCount;
-(int) getArea;
@end

@interface Square : NSObject<Shape>
@property int sideLength;
@property int lineCount;
-(id) initWithSideLength: (int) sideLength;
@end

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

-(int) getArea {
    return self.sideLength * self.sideLength;
}
@end

Square *square = [[Square alloc] initWithSideLength: 5];
int area = [square getArea];
//area is 25