我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩66彩票 > 多态性 >

面向对象中的多态的理解

归档日期:07-04       文本归类:多态性      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  生物*是爸爸(父类),鸟类**是儿子(子类),鱼类**是二儿子(子类)。龙生九子,各不相同。

  生物*的特点{活的,有细胞},儿子 鸟类**继承了爸爸{活的,有细胞},还延伸出了一个特点{有翅膀},所以鸟类**的特点是{活的,有细胞,有翅膀};

  而鱼类**也延伸出自己的特点,有{鳃},所以鱼类的特点{活的,有细胞,鳃}。

  划重点:没有继承性,就不会有多态性的存在(面向对象三大特性:封装、继承、多态)。

  多态性可以快速的判断事物本身的特点,而不用通过依赖顺序判断(先判断是不是生物,再查找有没有翅膀),明明就有个“鳃”你看见了,这就是一条鱼!何必多此一举????

  多态,继承等等是概念!概念!概念!理解这个概念,而不是片面断裂的人为划界限!

  推荐于2017-04-25展开全部简单来说,多态是具有表现多种形态的能力的特征,在OO中是指,语言具有根据对象的类型以不同方式处理之,特别是重载方法和继承类这种形式,的能力。多态被认为是面向对象语言的必备特性。

  多态有多种分类,通过了解这些分类可以更丰满对其认识,在这里就不再罗列,请各位参考 wiki大百科 和 javaworld .

  所谓泛型就是指我们不为特定的类型进行专门编码,而采用对不同类型进行通用编码的方式,无论是数据结果还是算法。

  而OO已能通过接口(Interface)和抽象类(Abstract Class)进行真正意义上的泛型了。在我看来,这就是OO最精彩的地方,也就是多态的威力。而对于传统意义上的Generic,我始终觉得其作用已经今不如昔了。

  严格来说,多态与继承、重载并不是孤立的,他们之间存在着紧密的联系,多态是建立在这两者的基础之上的(实际上继承就有用重载这一特性)。

  传统的多态实际上就是由虚函数(Virtual Function)利用虚表(Virtual Table)实现的(早期C模拟OO特性时使用最多,C++的实现也是,后来的技术未作研究,是否使用VT不得而知),自然是离不开继承,换句话说多态实际上覆盖了继承。

  这两者区别在哪?很显然,继承是子类使用父类的方法,而多态则是父类使用子类的方法。

本文链接:http://chapmanswifts.com/duotaixing/669.html