第一次接触OC多态,动态类型与动态绑定

多态:允许不同的类定义相同的方法。

动态类型:程序直到执行时才能确定所属的类。

动态绑定:程序直到执行时才能确定实际要调用的方法。

id类型:一种通用的对象类型,也就是说,id可以用来存储属于任何类的对象,让不同类的输出不用特定设定,通用一个id类型就好。

多态的出现时为了让不同的类能使用同明的方法。比如add,这个让程序的可读性大大提高,也降低了编程难度。add就是+,哪种类型的+都用add标明方法,清晰易懂。

动态类型与动态绑定是为了解决随多态的便利而引起的弊端,有了动态类型与动态绑定,不用去考虑输出中的add是哪个类型的add,会自动判定。

而id类型的出现就是为了更好的承接动态类型与动态方法出来的返回值。让对应add的sum也只有一个,输出时只需要输出sum,不需要在各个类中自行定义sum。

第一次接触OC多态,动态类型与动态绑定

时间: 2024-11-13 15:56:38

第一次接触OC多态,动态类型与动态绑定的相关文章

Objective-C之成魔之路【11-多态性、动态类型和动态绑定】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 多态这个其它语言也有.动态类型有类似的,但不完全相同. 动态绑定别的语言也有类似,但没有objective-c用的这么多. 多态能够使来自不同类的对象定义相同名称的方法. 动态类型能使程序直到执行时才确定对象所属的类. 动态绑定则能使程序直到执行时才确定实际要调用的对象方法. 多态性是指在父类中定义的成员变量和

第一次接触oc

第一次接触oc,要明白oc与之前所接触过得C语言不同,oc是面向对象而C语言是面向过程的,对于新手来说分清这2个的区别还是挺困难的. 首先面向过程是一种以事件为中心的编程思想—分析出解决问题所需的步骤,然后用函数把这些步骤一步一步实现,使用的时候一步一步调用. 而面向对象是一种以事物为中心的编程思想,体现在它是把问题分解给各个对象,建立对象不是为了完成一个步骤,而是为了描述某个事物在整个问题的步骤中的行为.力图使计算机语言对事物的描述与现实中改事物的本来面目尽可能一致. 这时候我们 就要了解什么

动态类型和动态绑定,动态载入

1.       iOS动态类型和动态绑定简述 NSObject * 也就是id类型---动态类型 动态绑定: 先明白引用多态---父类指针可以指向子类对象 方法多态: 方法名相同,方法的实现却不同 动态绑定就是当程序运行的时候,才去查找对象的类型. 一种是静态载入,一种动态载入 2.      简述你对UIView.UIWindow和CALayer的理解 UIWindow 就是程序的窗口,一个程序可以有多个窗口,但是屏幕大小限定的在同一时间内,只能显示一个窗口,窗口上面显示的UIView,可以

iOS开发笔记系列-基础3(多态、动态类型和动态绑定)

多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类定义.这是因为Objective-C的运行时系统在执行方法时知道消息的接收者是哪个类的对象,它总是携带有关“一个对象属于哪个类”这样的信息,该信息能使系统在运行时做出决定,而不是在编译时. 动态绑定和id类型 id数据类型是一种通用的对象类型,可以用来存储属于任何类的对象.当使用id类型的时候,程序

第9章 多态、动态类型和动态绑定(Objective-C 程序设计)

9.1 多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力称为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类定义都封装了特定方法所需的代码,这就使得它独立于其他的类定义. 9.2 动态绑定和id类型 id数据类型可以存储属于任何类的对象. 1 id dataValue; 2 3 Fraction *f1 = [[Fraction alloc] init]; 4 Complex *c0 = [[Complex alloc] init]; 5 6 dataVal

OC 动态类型,动态绑定,动态加载

Objective-C具有相当多的动态特性,基本的,也是经常被提到和用到的有 动态类型(Dynamic typing) 动态绑定(Dynamic binding) 动态加载(Dynamic loading) 动态类型:程序直到执行时才能确定所属的类. id 数据类型id 通用的对象类型,可以存储任意类型的对象,id后面没有号,它本身就是个指针类似于void ,但只可以指向对象类型 静态类型与动态类型 编译期检查与运行时检查 静态类型在编译期就能检查出错误 静态类型声明代码可读性好 动态类型只有在

OC多态,动态类型绑定

// //  main.m //  OC7类 // //  Created by Zoujie on 15/8/23. //  Copyright (c) 2015年 Zoujie. All rights reserved. // #import <Foundation/Foundation.h> #import "Fraction.h"//导入头文件 #import "Complex.h" #define Choose  0 int main(int 

OC是动态运行时语言是什么意思?什么是动态识别,动态绑定?

动态: 主要是将数据类型的确定由编译时,推迟到了运行时. 这个问题其实浅涉及到两个概念,运行时和多态. 简单来说,运行时机制使我们直到运行时才去决定一个对象的类别,以及调用该类别对象指定方法. 现在,让我来想想OC的动态语言特性.OC的动态特性表现为了三个方面:动态类型.动态绑定.动态加载.之所以叫做动态,是因为必须到运行时(run time)才会做一些事情. (1)动态类型 动态类型,说简单点就是id类型.动态类型是跟静态类型相对的.像内置的明确的基本类型都属于静态类型(int.NSStrin

object-c 继承多态 动态数据类型

在c#中我们知道有继承的.同样在object-c中也有继承. 例如我们写一个人类(父),一个学生类.我们可以这么写: demo: @interface Person:NSobject{ NSString *name; int age; NSDate brithDate; } -(NSString *) getInfo(); @end @interface Student:Person{ NSString* school; } @end object-c 中  我们在上个博客中知道  在objec