java中关于多态的理解

[复制链接]
查看11 | 回复1 | 2010-8-3 01:24:40 | 显示全部楼层 |阅读模式
打个比方
父亲person有行为这个方法,里面包括几个动作:吃饭,睡觉,走路
父亲有三个儿子,三个儿子都继承了父亲的行为方法,所以三个儿子都有吃饭,睡觉,走路这些动作,但是三个儿子又分别有自己的动作--大儿子A会弹吉他,二儿子B会唱歌,三儿子C会打鼓
所以行为这个方法在父亲和三个儿子身上体现的就是多态
1、如果 Person person = new A(); 父类对象指向子类引用 我想问 这个对象能调用能调用子类A特有的弹吉他方法吗

回复

使用道具 举报

千问 | 2010-8-3 01:24:40 | 显示全部楼层
1。Person person = new A(); 不是父类对象指向子类引用而是父类引用指向子类对象2。这个对象不能调用子类A特有的弹吉他方法--person.guitar(); X3.如果仅是这么写程序,还不是多态,记住实现多态的三要素:继承 重写 父类引用指向子类对象那么,你必须在父类里面定义一个方法guitar(); ,然后在子类中重写这个方法之后,如果你调用persion.guitar(),此时在代码的编译阶段,persion调用的仍然是自己的guitar(),不是儿子的。而当程序运行时,就是java XXX, persion调用的却是儿子的guitar()。这个动态的过程才是多态 。总之比如A
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行