20120808-课堂笔记 --继承、重载

来源:互联网 发布:java实现文件加密解密 编辑:程序博客网 时间:2024/05/02 05:01

1.继承的概念

2.继承的作用

  • 可以通过继承,将所有重复的内容放在一起。
  • 子类通过继承就可以获得超类的实例变量和方法。

3.继承语法

@interface 自定义类名  : NSObject

  • 在cocoa中,尽量从NSObject或已继承NSObject的类继承。
  • objective-c不支持多继承,但可通过其他特性,如分类和协议实现多继承的功能。
  • 继承的内容包括:方法和实例变量。 一般只在对继承的方法重载时,才在子类对它声明。
  • 继承之后不必再声明超类已有的实例变量,方法。
  • 继承常用于扩展一个类

  • 不能通过继承删除,减少方法,但可以利用重载来更改继承的定义。
  • 不能通过继承减少方法或实例变量,只能添加。
  • 分类机制允许以模块方式向现有的类定义添加新方法,尤其适用对没有源代码访问权限的类添加新定义时。
代码实例:
//定一个Shape类接口@interface Shape : NSObject     //类名第一个字母要大写{       ShapeColor fillColor;    ShapeRect  bounds;}-(void)setFillColor:(ShapeColor)fillColor;-(void)setBounds:(ShapeRect)bounds;-(void)draw;@end//Shape//定义一个Circlr类@interface Circle : Shape      //继承了Shape类的方法和变量,不必再声明。{    }//可以把函数写在这,但是需要重载@end//Circle//定义一个Rectangle类@interface Rectangle : Shape {    }@end//Rectangle



4.类名,第一个字母要大写。

超类:所继承的类,又称父类。
子类:实施继承的类。
重写:改变方法的实现时,需要用到重写。

5.消息调度机制
  • 当代码发送消息时,objective-c 的方法调度程序将在当前类中搜索相应的方法。
  • 如果调度程序无法在接受消息的对象中找到相应的方法,它就在该对象的超类中进行查找。
6.
  • NSObject 声明了一个名为isa的实例变量,该变量保存一个指向对象的类的指针。
  • 每个方法都有一个名为self的隐藏参数,指向继承链中第一个类的第一个实例变量。
  • 编译器使用基地址加偏移 查找实例变量的位置,对象的基地址指向第一个实例变量的首个字节在内存中的位置。
  • isa对应类,self对应方法。
7.重写方法

  • 添加全新的方法。
  • 修改方法。
  • 方法调度程序将使用重写的方法,而忽略超类的方法。重写的方法 优先级大于超类的原方法
Q:提供某种重写方法时,若仍想调用超类的实现方法?
*---------------------------------------------------------------
解决方法: super 关键字
|1.可以通过super 实现显示的调用超类方法,如下:
[super setFillColor  :  c ];
|注意:此处不能写成 [Shape setFillColor : c]; 是实例方法,不是类方法。
|2.在子类中重写方法时,常显示的调用超类方法。
|3.向super发送消息时,objective-c 向该类的超类发送消息。如果超类中没有定义该消息,将按照通常的方式在继承中继续查找对应的消息。
*---------------------------------------------------------------

本课总结:

  1. 理解oop中继承的概念。
  2. 场我继承的语法规则。
  3. 理解objective-c的方法调度机制:无继承、有继承。
  4. 理解关键字super的作用。
  5. 掌握在重写方法中调用超类同名方法。







疑问。函数不一定要定义在类中。如果类外的函数要访问类的数据成员,可以使用程序方法来访问。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6个月的宝宝咳嗽怎么办 4个月睡眠倒退期怎么办 科三五次没通过怎么办 打架时被抱住了怎么办 炸猫耳朵不脆怎么办 五个月宝宝脖子有点歪怎么办 婆婆不给带孩子怎么办 脚冻了怎么办 小妙招 pdf转word后乱码怎么办 李氏根源用多了怎么办 pdf在wps中打开怎么办 小孩刚上幼儿园哭闹怎么办 一到冬天皮肤痒怎么办 87岁老人身上痒怎么办 天刀技能拖不动怎么办 晚上不吃饭饿了怎么办 虚火引起的牙疼怎么办 吃上火了牙疼怎么办 慢性胃炎引起的口臭怎么办 烂牙引起的口臭怎么办 坏牙引起的口臭怎么办 牙齿拔了有口臭怎么办 胃疼连着后背疼怎么办 肚脐眼又红又痒怎么办 三岁宝宝有口臭怎么办 脚扭了按压疼痛怎么办 喝完酒头晕5天了怎么办 三岁宝宝口气重怎么办 肠镜检查出息肉怎么办 怀孕了口气很重怎么办 脚被重物压肿了怎么办 摔倒膝盖肿了应该怎么办 脚挤压伤肿了怎么办 30岁后脸上长斑怎么办 12岁脸上有雀斑怎么办 16岁脸上有斑怎么办 脸上有斑怎么办 教你 4o岁脸上有色斑怎么办 小孩三年级成绩都差怎么办 孕晚期头大腿短怎么办 天天p图格式不对怎么办