文档章节

继承,多态与复合

W
 W_JJ
发布于 2015/10/13 18:10
字数 401
阅读 8
收藏 0

今天复习一下继承,并进行一下多态。

首先,我们回顾一下继承与多态。

继承是需要一个父类和至少一个子类,有子类去继承父类的属性和方法,但是父类不可以调用子类的方法。

多态父类的指针指向子类的对象,就需要把参数的类型由子类的指针类型改成父类指针类型。

但是注意的是,在使用多态时,是建立于继承之上的。还有,子类在继承父类时,在子类的.h文件中要引用父类的文件,在main.m文件中,要引用子类和父类的头文件。

例如:

            

其次对于复合,只能总结出一点点,具体我会用一个实例做介绍。

复合,我可以去简易的理解为一座房子,建房子所要的东西综合起来就成为一座房子,这就是复合。下面我以一个例子解释复合。

建立四个类,Home,Floo,Door,Window

在Home.h文件中写出如图,



特别注意的是头文件的引用和编写参数名的地方。

然后就是 其他类的方法(我只举一个

在Home.m文件中加入这样的一个方法,

-(void) setHouse

{

    NSLog(@"This is a Houseit have %@ windows,%@ floors and %@ doors",[_window sWindw],[_floor sFloor],[_door sDoor]);

}

最后就是mai.h

在最后.m文件中,值得注意的是“[ ]”中的内容。

在学习复合中,我个人认为主要理清各个类的关系,每个参数名的引用。

© 著作权归作者所有

共有 人打赏支持
下一篇: 继承与多态
W
粉丝 0
博文 6
码字总数 5272
作品 0
榆林
私信 提问
【非凡程序员】 OC第四节课 (复合和多态)

1.复合:是将各个部分组合在一起。程序设计中就是用已有类的对象来产生新的类。 编程中的复合就是将多个组件组合在一起,配合使用,从而得到完整的作品。 发动机是汽车的组成部分 -> 复合 飞...

七月流火zsp
2015/05/17
0
0
面向对象的三个基本特征

面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成...

笨拙的小Q
2016/07/07
24
0
面向对象的三个基本特征(讲解)

面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成...

小磨磨牙
2010/11/08
0
0
面向对象的三个基本特征是:封装、继承、多态

封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进...

gavin_jin
2012/03/02
0
3
面向对象的三个基本特征 和 五种设计原则

一、三个基本特征 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且...

NickHomeSelf
2016/08/18
23
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 教程:在 Confluence 中导航

当你对 Confluence 有所了解后,你会发现 Confluence 使用起来非常简单。这个教程主要是针对你使用的 Confluence 界面进行一些说明,同时向你展示在那里可以进行一些通用的任务和操作。 空间...

honeymose
今天
2
0
sed, awk 练习

1. sed打印某行到某行之间的内容 2. sed 转换大小写 将单词首字母转化大写 将所有小写转化大写 3. sed 在某一行最后面添加一个数字 4. 删除某行到最后一行 解析: {:a;N;$!ba;d} :a : 是...

Fc丶
今天
2
0
babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
今天
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部