求解多态
看了一遍书,书上就一句多态是一段程序在不同环境中有不同的语义解释。然后就是多态数组,和多态参数两个实例,我实在吃不透他,请各位朋友帮忙解释一下好吗?
------解决方案--------------------大圈套小圈的原理
假如声明时用的是动物
传的是猫是狗没有关系 只要是动物就行
!!!!
------解决方案--------------------重写(Override)和重载(overload)都是多态的表现
重写是指子类重写父类的方法,或者实现类重写接口的方法,这样子类和父类的同一方法就会有不同的逻辑,是多态;
而重载是在同一个类里,方法名相同参数不同,这也是多态。
------解决方案--------------------动物 相当于父类
猫 狗 都属于动物 是动物的子类
如果在一个方法中形参部分指定一个动物类型也就是父类型的参数,那么你传的时候就可以传递 或者 猫 或者狗
这些动物的子类类型
且父类型一般都是抽象的 就像一个人说 动物 你脑海中会有一个动物 的具体体现嘛 不要告诉我猫 或者 狗
因为那些不是动物类型的 它们都是动物类型的具体实现类型(子类型) 而且不管你想的是猫 还是狗 你肯定都会想到这些,因为他们具有动物的特征 这就是多态了
提到(声明)一个父类类型,而想到(实际传入)的确是父类的子类实现类型,而且子类实现类型可以有很多种(猫,狗) 只要它们是父类类型这个体系的(继承自父类,符合一种 is a 的关系 例如 狗 是一个动物)
其实,我们仨生活中还是有很多例子的 比如你渴了 想喝水吧
那么你会去管别人给你的是白开水还是矿泉水嘛
不管哪种水 只要你看到是能解渴的水 你就会喝掉吧
程序中也是这样的 需要一种类型的东西去解决一个问题(水)
程序不会去管你是用什么东西解决的这个问题(别人给你的东西)
只要能解决问题就可以 这就是面向对象的好处了!!!
个人的小小体会,希望可以对楼主有所帮助!!!