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

如下这段文字,是什么意思?
在多态中,向上转型和向下转型有很多的应用。
例如: 1: Animal c = new Cat(); //类型提升,向上转型
在编译时:参阅引用型变量所属类中是否有调用的方法。如果有。编译通过,没有编译失败
在运行时:参阅对象所属类中是否有调用方法。
简单一句话:成员函数在多态时,编译看左边,运行看右边。
2: 如果想要调用猫的特有方法,如何操作?
强制将父类的引用,转成子类类型。向下转型
Cat c = (Cat)a;
c.catchMouse();
3: 在多态中,调用子类函数,子类方法必须覆盖父类中的方法,如果调用子类特有的方法,就必须向下转型了。
这样非静态的方法可直接调用。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类,)
在多态中,静态成员函数的特点:
无论编译和运行,都参考做左边。

Animal c = new Cat(); 左边是 Animal 类(或接口) 右边是 Cat()类; 在编译的时候编译器不管你右边是什么类,只要左边的Animal类(或接口)能编译通过就不会报错。但是运行的时候就要按照右边的Cat()类实际情况来运行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-09
从这里来看.编译的时候就是验证Animal是否有这个接口,(左边)
运行的时候 a实际上是Cat.(Cat 是 Animald的实现类)
实际是要运行Cat的实现方法.(右边)
说的比较乱..本回答被网友采纳
第2个回答  2012-10-09
不用太计较这些东西

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网