Objective-C程序设计第八章----继承

本章讲解objective-c继承的相关知识点和注意点。

如下:

1. 只有定义在@interface区域内的实例变量才能被子类继承,定义在@implement 里的变量是私有变量,不能被子类直接访问

只能通过getter和setter访问

换句话说只要父类内的实例变量不是定义在@implement中都可以被子类直接访问

但是: 如果在@implement中使用了@synthesize中,则子类不能直接访问父类的相应实例变量。(个人理解, 不一定准确)


2. 可以使用categories去给类动态添加一个方法。


3. @class指令

这个指令可以用#import代替, 但是它比#import效率高。

#import <Foundation/Foundation.h>
@class XYPoint;
@interface Rectangle: NSObject
@property int width, height;
-(XYPoint *) origin;
-(void) setOrigin: (XYPoint *) pt;
-(void) setWidth: (int) w andHeight: (int) h;
-(int) area;
-(int) perimeter;
@end

注意:如果在一个set方法里创建了另外的一个对象,则不能使用@class, 需要用#import


4. 方法重写

老生常谈的话题了。需要注意参数类型,个数, 返回值类型要跟父类保持一致。


5. 抽象类

抽象类是不会被创建实例的类。

如:NSNumber


6. 练习

注意下面的setter和getter的实现方法

setter, getter方法必须被@synthesize声明或者成对实现在@implement中,或者在@interface中使用nonatomic定义属性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值