文档章节

继承,多态与复合

W
 W_JJ
发布于 2015/10/13 18:10
字数 401
阅读 8
收藏 0
点赞 0
评论 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

面向对象的三个基本特征

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

笨拙的小Q ⋅ 2016/07/07 ⋅ 0

面向对象的三个基本特征(讲解)

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

小磨磨牙 ⋅ 2010/11/08 ⋅ 0

面向对象的三个基本特征是:封装、继承、多态

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

gavin_jin ⋅ 2012/03/02 ⋅ 3

面向对象的三个基本特征 和 五种设计原则

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

NickHomeSelf ⋅ 2016/08/18 ⋅ 0

Go入门教程

基础编程 01、Go语言介绍 02、环境搭建 03、第一个Go程序 04、命名、变量、常量 05、基础数据类型 06、格式化输出、类型转换、类型别名 07、运算符 08、流程控制 09、自定义函数 10、递归函数...

tennysonsky ⋅ 01/19 ⋅ 0

Go面向对象编程

面向对象编程: 把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化...

huwh_ ⋅ 2016/12/17 ⋅ 0

封装、继承和复合、多态

一.通过对封装的学习,了解了其安全性。 成员变量前面有作用域限定符(protected,public,private)。在访问成员变量时,一般不声明的情况下都是private私有的,是受protected保护的,只有执行...

小黑202 ⋅ 2016/07/15 ⋅ 0

JavaScript高级编程技巧:用JavaScript继承和扩展对象

     如果你熟悉面向对象编程,你很可能熟悉子类(Subclassing)和继承(Inheritance)。 然而,继承得到了一个坏名声,这是因为有些开发人员在需要修改程序时将其视为一个全面的解决方案...

webstack前端栈 ⋅ 2017/12/12 ⋅ 0

PostgreSQL学习手册(SQL语言函数)

一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数...

Junn ⋅ 2016/01/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 22分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 41分钟前 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 47分钟前 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 54分钟前 ⋅ 0

文件压缩和打包zip、tar

第六章 文件压缩和打包 6.5 zip压缩工具 zip命令可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。 注意:...

弓正 ⋅ 55分钟前 ⋅ 0

vuex

一、状态对象如何赋值给内部对象。三种方式: 1、使用computed赋值,一定要写this,不然找不到$store。 computed:{ count(){ return this.$store.state.count; }} 2、通...

大美琴 ⋅ 今天 ⋅ 0

javaScript 设计模式

1、构造函数模式 ` /** 构造一个动物的函数 */ function Animal(name, color){ this.name = name; this.color = color; this.getName = function(){ return this.name; } } // 实例一个对象 ......

fangPeng_ ⋅ 今天 ⋅ 0

日常嘚瑟:TeamCity构建中解压和打包tar

要弄一个新的构建,很简单,从两个构建的tar格式Artifact中分别取一部分,重新打一个tar。 所以,我去写个脚本用curl下载两个依赖的Artifact,然后解压移动重新打个tar? 开什么玩笑,我的技...

谷永权 ⋅ 今天 ⋅ 0

Istio官方文档中文版

阅读目录 Istio官方文档中文版 回到目录 Istio官方文档中文版 http://istio.doczh.cn/ https://istio.io/docs/concepts/what-is-istio/goals.html 为什么要使用Istio? 在从单体应用程序向分...

xiaomin0322 ⋅ 今天 ⋅ 0

CentOS 7 Omnibus 包安装 GitLab 并汉化记录

系统环境 操作系统:CentOS 7GitLab:gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm 下载Omnibus安装包 使用国内镜像加速下载地址 # wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el......

admin_qing ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部