什么叫做面向对象的 多态性???
发布网友
发布时间:2022-05-19 04:29
我来回答
共3个回答
热心网友
时间:2024-03-04 10:18
多态性,就是一个父类的引用变量,可以指向其任意一个子类对象。
例如,一个animal类,其子类有cat与dog,然后你创建一个父类animal的引用animalAlpha,然后它可以指向cat的对象cat1,或指向dog的对象dog1。
主要有时在程序设计时,未来有那些子类有时是未知的,这样在你用一个父类的引用变量来完成某些功能,就可以兼容后来出现的子类。
热心网友
时间:2024-03-04 10:18
是说男女都喜欢的那种吗?
热心网友
时间:2024-03-04 10:19
我举个通俗一点的例子吧,
比如生物是一个类,生物类里面包含了一个类叫鸟类
生物*是爸爸(父类),鸟类**是儿子(子类),鱼类**是二儿子(子类)。龙生九子,各不相同。
生物*的特点{活的,有细胞},儿子 鸟类**继承了爸爸{活的,有细胞},还延伸出了一个特点{有翅膀},所以鸟类**的特点是{活的,有细胞,有翅膀};
而鱼类**也延伸出自己的特点,有{鳃},所以鱼类的特点{活的,有细胞,鳃}。
——————————————————
问题:这tm不是继承性吗?关多态性屁事?
划重点:没有继承性,就不会有多态性的存在(面向对象三大特性:封装、继承、多态)。
多态性(基于继承所显示的多重特性)。所以!
只要发现了“翅膀”,人们可以立刻判断是鸟,第二反应是它还是生物呢~~~
发现“鳃”,哦,它是鱼类,第二反应,它也是生物呀~~~
————————————————————————
多态性可以快速的判断事物本身的特点,而不用通过依赖顺序判断(先判断是不是生物,再查找有没有翅膀),明明就有个“鳃”你看见了,这就是一条鱼!何必多此一举????
————————————————————————————
补充关于非多态的继承:
举个栗子:
父类是车{承重1-100,速度1-100},跑车是车的子类,
跑车{承重1-10,速度90-100},
卡车{承重90-100,速度10-20},
OK?没有显示出特点,只是划分了更精确的区间。
所以!划重点:
——————————————————————————
多态,继承等等是概念!概念!概念!理解这个概念,而不是片面断裂的人为划界限!
这个我在其他也回答过,就是这么简单,不要太被概念绕晕了
因为面向对象这三个特性是融合在一体的,缺一不可,缺了,就“没对象了”,哈哈哈哈~~
ps:这个问题回答了好多次,希望百度优化一下同类问题,太多一样的东西不利于用户筛选。