首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

语体文讲多态

2012-09-20 
白话文讲多态对于多态的理解一直都仅限于那三句话:1.父类的引用,引用子类型的实例 2.子类型里面重写父类型

白话文讲多态
对于多态的理解一直都仅限于那三句话:
1.父类的引用,引用子类型的实例
2.子类型里面重写父类型的方法
3.父类型的引用调用子类型的重写后的方法
但是其什么意思一直都是懵懵懂懂。也许比较厉害的人,一看就知道什么意思。呵呵,没办法,我就是比较笨,看不懂,所以,今天用通俗易懂的白话文,来补充一下多态。(稍微比较厉害的人,可以飘过了。)

多态中,虽然走的是子类中的方法,但是可用的只有从父类中继承的方法。
     如果,子类中的方法,在父类中没有,那么在判断输出结果时,此方法不存在。
     父类中有这个方法,子类中重写了此方法,那么输出结果以子类中的为准。
     父类中有这个方法,子类中没有重写此方法,那么输出结果以父类中的为准。
若:
  class A extends B{}
  B b = new A();
  那么A中新增的方法将不会运行,只会走A中重写B类的方法,和B类中的方法。如果B继承了C的类,那么还会走C中B没有实现的方法。

这是我通过一个例子,理解出来的,如果有不对的地方,还请见谅,或者,帮我指正也好。 1 楼 gerrard_ok 2011-11-21   漂你妹啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 楼 yatou_0209 2011-11-22   败家叔叔。。。 3 楼 long2010 2011-12-15   引用若:
  class A extends B{}
  B b = new A();
  那么A中新增的方法将不会运行,只会走A中重写B类的方法,和B类中的方法。如果B继承了C的类,那么还会走C中B没有实现的方法。

说明一下,如果B继承了C类,那么C类中声明的非私有方法即使B类中没有重写,B类中也是可以使用的。不能说B中没有实现这个方法,只能说没有重写这个方法而已。需要注意的一点:必须是非私有的方法。 4 楼 yatou_0209 2011-12-15   long2010 写道引用若:
  class A extends B{}
  B b = new A();
  那么A中新增的方法将不会运行,只会走A中重写B类的方法,和B类中的方法。如果B继承了C的类,那么还会走C中B没有实现的方法。

说明一下,如果B继承了C类,那么C类中声明的非私有方法即使B类中没有重写,B类中也是可以使用的。不能说B中没有实现这个方法,只能说没有重写这个方法而已。需要注意的一点:必须是非私有的方法。

了解。。受教了。。。 5 楼 BuN_Ny 2011-12-20   你想太多了。多态更多的是思想层面的东西,继承是实现层面的东西,封装则是基础层面的东西。三者都是描述面向对象的,没有那么大的区分。
多态的目的主要是忽略对象之间的差异,实现依赖倒转。上层方法一般是一种承诺,下层方法才是实现。 6 楼 BuN_Ny 2011-12-20   如果,子类中的方法,在父类中没有,那么在判断输出结果时,此方法不存在。
有一个高手,他只会吃饭、睡觉,但是今天他不在,你来代替他,而你至少要会吃饭、睡觉才能算高手吧?有趣的是,你还会打豆豆,那么那个高手会打豆豆么? 7 楼 BuN_Ny 2011-12-20   父类中有这个方法,子类中重写了此方法,那么输出结果以子类中的为准。
高手一直都吃白菜,你非要吃萝卜,请问,今天你当班,被吃掉的是萝卜还是白菜? 8 楼 BuN_Ny 2011-12-20   父类中有这个方法,子类中没有重写此方法,那么输出结果以父类中的为准。
高手一直都睡床,你没有任何异议,今天你当班,睡的是床还是吊绳? 9 楼 yatou_0209 2011-12-21   BuN_Ny 写道你想太多了。多态更多的是思想层面的东西,继承是实现层面的东西,封装则是基础层面的东西。三者都是描述面向对象的,没有那么大的区分。
多态的目的主要是忽略对象之间的差异,实现依赖倒转。上层方法一般是一种承诺,下层方法才是实现。
我只是一直搞不清楚,所以才写了这篇文章,省的以后会忘,我说的不见得是对的,只是我自己的理解罢了。。有不对的地方谢谢指教。。 10 楼 yatou_0209 2011-12-21   BuN_Ny 写道你想太多了。多态更多的是思想层面的东西,继承是实现层面的东西,封装则是基础层面的东西。三者都是描述面向对象的,没有那么大的区分。
多态的目的主要是忽略对象之间的差异,实现依赖倒转。上层方法一般是一种承诺,下层方法才是实现。
啊~~~~~哦。了解了,谢谢。。。嘿嘿

热点排行