7 继承 [Objective-C基础教程]

1 . Objective-C 不支持多继承。
2 . Square 类继承于 Rectangle 类的继承示例

//*************************************************************************************//
// Rectangle 类 声明
#import<Foundation/Foundation.h>
@interface Rectangle: NSObject // 继承于根类 NSObject
{
int width;
int height;
}
@property int width, height; // 存取器属性
-(int) area;
-(int) perimeter;
@end
// Rectangle 类 定义
#import "Rectangle.h"
@implementation Rectangle
@synthesize width, height;
- ( int) area
{
return width * height;
}

//*************************************************************************************//
// Rectangle 类 声明
#import<Foundation/Foundation.h>
@interface Rectangle: NSObject // 继承于根类 NSObject
{
int width;
int height;
}
@property int width, height; // 存取器属性
-(int) area;
-(int) perimeter;
@end
// Rectangle 类 定义
#import "Rectangle.h"
@implementation Rectangle
@synthesize width, height;
- ( int) area
{
return width * height;
}

-(int) side;
@end
// Square 类 定义
#import "Square.h"
@implementation Square
-(void) setSide: (int) s
{
[self setWidth: s andHeight: s];
// self 指令在自身类中查找 setWidth: andHeight: 方法,查找不到,则调用其父类中的该方法
}
-(int) side
{
return width;
}
@end
//*************************************************************************************//
3 . @class 指令
Rectangle 类只存储了矩形大小。现在要添加原点 (x,y) 的概念。因此,定义一个名为 XYPoint 的类。

//***********************************************************************************************//
// XYPoint 类 声明
#import<Foundation/Foundation.h>
@interface XYPoint: NSObject
{
int x;
int y;
}
@property int x, y; // 存取器属性
-(void) setX: (int)xVal andY: (int) yVal;
@end

// XYPoint 类 定义
#import "XYPoint.h"
@implementation XYPoint
@synthesize x, y;

-(void) setX: (int) xVal andY: (int) yVal
{
x = xVal;
y = yVal;
}
@end
// 声明
#import<Foundation/Foundation.h>
@class @class @class @class XYPoint; XYPoint; XYPoint; XYPoint; // 代替 #import "XYPoint.h"
// 使用 @class 指令提高效率,编译器不需要处理整个 XYPoint.h 文件, // 只需要知道 XYPoint 是 一
个类名,但是如果需要引用 XYPoint 类中方 // 法, @class 指令是不够的,必须用 #import
"XYPoint.h" 。
@interface Rectangle: NSObject
{
int width;
int height;
XYPoint *origin;

}
-(int) area;
-(int) perimeter;
@end
//***********************************************************************************************//

来源://作者:/更新时间:2012-11-09
相关文章
评论:
验证码:
匿名评论:

最新文章

新热推荐

文章排行