A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 牵手相伴 中级黑马   /  2014-6-15 14:26  /  1764 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么函数就要先看的是子类对象,而成员变量就要先看的是父类的引用

8 个回复

倒序浏览
本帖最后由 面向大众 于 2014-6-15 16:23 编辑

对于这个偏奇葩的问题还是让我这个准奇葩的人来回答好了...
之所以有多态出现,就是为了程序的扩展性和简洁性。在java中如何灵活使用成员变量和方法呢?假设在继承关系中没有多态的出现那么在写子类的时候还要重新定义成员变量,那这和从新开一个类和面向过程就没啥区别了。
java希望在子父类同时存在的情况下可以灵活调用这两个类中的方法和变量,那么多态这个概念就应运而生了。
其实这个也很好理解的,一个人在社会中不可能只有一个角色,比如你有两份工作,一份做网站一份兼职写app,那当领工资的时候你不可能用网站的身份领app的工资,即使这俩是同一个人,而且对你来说都是领工资。
那么,领工资这个行为就是抽象类或者父类的方法,而你领2份工资的时候要扮演两个角色,做网站和app。显然这在代码体现中就是继承父类的两个子类,子类中会有2个重写“领工资”的方法:“领网站工资”和“领app工资”。但是成员变量都没有变,都是你这个人,你不可能分身是吧。
多态就是具有多个状态,它可以解决一个父类有N个子类的时候,仅仅通过父类就可以调用子类方法的问题,大大提高了开发过程中的便捷性。楼主可以想象为什么它叫多态而不叫多子呢?
都是个人对多态的理解,希望能帮到楼主,别越来越绕。
回复 使用道具 举报 2 0
面向大众 发表于 2014-6-15 16:21
对于这个偏奇葩的问题还是让我这个准奇葩的人来回答好了...
之所以有多态出现,就是为了程序的扩展性和简洁 ...

就是感觉和这个问题有点对不住,
回复 使用道具 举报
过来学习一下!
回复 使用道具 举报
我来学习了!!!!!!!!!!!!!!!!
回复 使用道具 举报
确实 有点 矛盾的感觉,你 提问的问题。
回复 使用道具 举报
HJK 中级黑马 2014-6-16 12:49:42
7#
有点看不太懂你的问题
回复 使用道具 举报
你说的问题不太懂,我倒觉得二楼的比喻很恰当,多态就是那样理解的。
回复 使用道具 举报
还真有点奇葩的敢脚
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马