在java多态中,编译看左边,运行看右边是什么意思,哪位大侠能帮忙详细解释一下 谢谢了.

如下这段文字,是什么意思?在多态中,向上转型和向下转型有很多的应用。例如:1:Animalc=newCat();//类型提升,向上转型在编译时:参阅引用型变量所属类中是否... 如下这段文字,是什么意思?
在多态中,向上转型和向下转型有很多的应用。
例如: 1: Animal c = new Cat(); //类型提升,向上转型
在编译时:参阅引用型变量所属类中是否有调用的方法。如果有。编译通过,没有编译失败
在运行时:参阅对象所属类中是否有调用方法。
简单一句话:成员函数在多态时,编译看左边,运行看右边。
2: 如果想要调用猫的特有方法,如何操作?
强制将父类的引用,转成子类类型。向下转型
Cat c = (Cat)a;
c.catchMouse();
3: 在多态中,调用子类函数,子类方法必须覆盖父类中的方法,如果调用子类特有的方法,就必须向下转型了。
这样非静态的方法可直接调用。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类,)
在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。
展开
 我来答
绝耳一玩孩15
2012-10-09 · TA获得超过119个赞
知道答主
回答量:63
采纳率:0%
帮助的人:40.4万
展开全部
Animal c = new Cat(); 左边是 Animal 类(或接口) 右边是 Cat()类; 在编译的时候编译器不管你右边是什么类,只要左边的Animal类(或接口)能编译通过就不会报错。但是运行的时候就要按照右边的Cat()类实际情况来运行。
taifeng0922
2012-10-09 · 超过32用户采纳过TA的回答
知道答主
回答量:60
采纳率:100%
帮助的人:26.7万
展开全部
从这里来看.编译的时候就是验证Animal是否有这个接口,(左边)
运行的时候 a实际上是Cat.(Cat 是 Animald的实现类)
实际是要运行Cat的实现方法.(右边)
说的比较乱..
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcz3141
2012-10-09 · TA获得超过303个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:128万
展开全部
不用太计较这些东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式