文档章节

Objective-C文字总结

Anyi_安一
 Anyi_安一
发布于 2015/10/13 19:30
字数 932
阅读 50
收藏 2
点赞 0
评论 0

      多态按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

      多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不是面向对象的。

      多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

Oc中的多态:不同对象对同一消息的不同响应.子类可以重写父类的方法

多态就是允许方法重名 参数或返回值可以是父类型传入或返回。

      把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

      赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。

      举个例子:从一个基类中派生,响应一个虚命令,产生不同的结果。

      使用继承性的结果就是可以创建一个类的家族,在认识这个类的家族时,就是把导出类的对象当作基类的对象。这样认识的重要性在于:我们可以只针对基类写出一段程序,但它可以适应于这个类的家族,因为编译器会自动找出合适的对象来执行操作。这种现象又称为多态性。而实现多态性的手段又叫称动态绑定。

      简单的说,建立一个父类的对象,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,当在父类里的这个函数前加Mute关键字,那么子类的同名函数将被调用。通俗点说就是父类不加Mute关键字,那么子类的同名函数将会被覆盖。

   

小结

 

     方法
1,父类对象类型指向子类对象。

     优点
1,在函数或方法的参数中父类对象类型可以同时接受多种子类对象传入参数。
2,当子类对象被父类对象类型指向时,可以直接调用父类方法,但是不能直接调用子类的特有方法,如果需要必须调用,需将对象类型强制转换为子类类型。

     局限性
1,不能子类对象类型指向父类对象。(编译器会警告,但是可以正常运行,还是不建议这样处理)
2,继承于同一个父类对象的子类之间不能互相指向。(编译器会警告,但是可以正常运行,还是不建议这样处理)


© 著作权归作者所有

共有 人打赏支持
Anyi_安一
粉丝 0
博文 3
码字总数 1493
作品 0
西安
iOS 学习资料整理

视频教程(英文) Developing iOS 7 Apps for iPhone and iPad 斯坦福开放教程之一, 课程主要讲解了一些 iOS 开发工具和 API 以及 iOS SDK 的使用, 属于 iOS 基础视频 iPad and iPhone Applic...

拉偶有所依 ⋅ 2015/01/19 ⋅ 4

知名应用背后的第三方开源项目

Instagram AFNetworking: 适用于iOS和OS X的网络框架。 Appirater: 提醒用户打分。 ASIHTTPRequest:简单使用CFNetwork API封装进行HTTP网络请求,用Objective-C编写,可应用在Mac OSX和iOS...

Snaiper ⋅ 2015/09/23 ⋅ 0

再看知名应用背后的第三方开源项目

知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的...

hejunbinlan ⋅ 2015/08/18 ⋅ 0

知名应用背后的第三方开源项目

知名应用程序的设计和技术一直都是开发者需要学习的同样这些应用所使用的开源框架也是不可忽视的一部分。此前《iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开...

Im刘亚芳 ⋅ 2015/02/09 ⋅ 0

IFTTT 加入开源大家庭,已开源5个项目

IFTTT 刚刚开源了 5个项目,存放在 GitHub 上,这些项目可以被任何人用来集成 IFTTT 的自动化到他们的 apps 和服务上。 上周,微软和谷歌宣布 办公软件在 IFTTT 得到支持,而这次 IFTTT 开源...

oschina ⋅ 2015/07/26 ⋅ 4

objective-c优雅的语法

对初学者来说,objective-c存在了很多令人费解的写法,实际上他们是非常优雅的。 程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下objective-c的优雅之...

王二狗子11 ⋅ 01/01 ⋅ 0

iOS开发之Object-C和Cocoa [转]

Objective-C Objective-C,是扩充C的面向对象编程语言。是在C的基础上,加入面向对象特性扩充而成的编程语言。目前,Objective-C主要应用于Mac OS X和iOS开发,而在NeXTSTEP和OpenStep中它更...

ilscott ⋅ 2012/12/13 ⋅ 0

objective-c优雅的语法

对初学者来说,objective-c存在了很多令人费解的写法,实际上他们是非常优雅的。 程序员写的最多的就是函数以及调用自己写的或者别人写的函数。本文就从函数的角度来看下objective-c的优雅之...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

资源分享-开发工具-Java2ObjC

本文来自我我的博客:https://www.lwxshow.com/soft/resource-sharing-tools-java2objc.html 今天为大家推荐一款:java转objective-c代码工具. 大家都想直接将java代码转成objective-c代码,手...

卢卫湘 ⋅ 2013/06/17 ⋅ 0

总结objective-c特点

Objective-C与其它面向对象有这明显的不同,它有这自己鲜明的特色,下面我们从这个方法介绍它的特点:兼容性、字符串、类、方法、属性、协议和分类。 1. 兼容性 Objective-C可以说是一种面向...

晨曦之光 ⋅ 2012/05/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 7分钟前 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 12分钟前 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 24分钟前 ⋅ 0

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 44分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 59分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部