热门搜索 :
考研考公
您的当前位置:首页正文

iOS 多态的基本认识

来源:东饰资讯网

1.定义:某一类事物的多种表现形态、
生活中:
动物:猫—波斯猫
—叮当猫
狗—京巴
—旺财
程序中:
父类指针指向子类对象

2.条件
2.1子类继承父类
2.2子类有重写父类的方法
2.3父类指针指向子类对象
动物 *a = [猫 alloc]init];
动物 *a = [狗 alloc]init];

表现形式: 在父类指针指向不同的对象的时候,通过父类指针调用被重写的方法,会执行该指针所指向的那个对象的方法;

3.实现
口述:我们在实现获取不同电脑运行的不同系统时,先创建一个Computer类(父类)并添加一个system方法,再创建一个PC类(继承于Computer类)和Mac类(继承于Computer类),由于system的不同,我们可以在两个子类中各自重写一个system类,用于获取不同电脑的不同的系统。
Computer *com = nil;

Computer = [PC alloc]init];//实例化PC对象
[PC system];

Computer = [Mac alloc]init;//实例化Mac对象
[Mac system];

4.原理
id类型:通用对象指针类型,弱类型,编译的时候不进行具体的类型检查。
动态绑定:动态类型可以做到在程序直到执行时才确定对象的真实类型,进而确定需要调用那个对象方法。
OC 不同于其他程序设计语言,他可以在运行的时候加入新的数据类型和新的程序模块,动态类型识别,动态绑定,动态加载。

5.优点:
5.1多态最重要的优点在于简化了编程接口,何以理解?他允许在类和类之间重用一些习惯性的命名,而不是为每一个新加的函数命名一个新的名字。。这样,编程接口就是一些抽象行为的集合,从而和实现接口的类区分开。
5.2多态也使得代码可以分散在不同的对象中,而不用视图在一个函数中考虑到所有可能的对象。这样可以优化代码的扩展性和复用性。挡一个新的情景出现时,无须对现有的代码进行改动,而只需要增加一个新的类和新的同名的方法。

Top