黑马程序员技术交流社区

标题: 多态的简单学习 [打印本页]

作者: QQ2544    时间: 2015-8-6 23:55
标题: 多态的简单学习
1、什么是多态?

        什么是多态:多态就是某一类事物的多种形态 ;

        猫: 猫-->动物
        狗: 狗-->动物
       
        男人 : 男人 -->人 -->高级动物
        女人 : 女人 -->人 -->高级动物

程序中的多态:
不同的对象以自己的方式响应相同名称方法的能力称为多态
或者
多态是同一个行为具有多个不同表现形式或形态的能力。


2、多态的条件

多态的条件:父类的声明变量指向子类对象。
                   有继承关系、有方法重写

        //代码体现:用父类类型的指针指向了子类对象,这就是多态
        狗 *g = [狗 new];
        动物 *a = [狗 new];
       
        猫 *c = [猫 new];
        动物 *a = [猫 new];
       
3、多态的优点
     多态的主要好处就是简化了编程接口。它容许在类和类之间重用一些习惯性的命名,而不用为每一个新加的函数命名一个新名字。这样,编程接口就是一些抽象的行为的集合,从而和实现接口的类的区分开来。

      多态也使得代码可以分散在不同的对象中而不用试图在一个函数中考虑到所有可能的对象。 这样使得您的代码扩展性和复用性更好一些。当一个新的情景出现时,您无须对现有的代码进行改动,而只需要增加一个新的类和新的同名方法。

我自己的理解,比如狗和猫都继承自动物这个基类,动物类里面都有吃饭这个动作,但是狗吃饭吃的是狗粮,猫吃饭吃的是猫粮,这样的话,在子类里面写一个和基类相同名字的方法就行,但是狗吃饭的时候体现的是吃狗粮,猫吃饭的时候吃的是猫粮,比较方便,实现了一个吃饭的方法有不同的表现形式。感觉很有意思。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2