黑马程序员技术交流社区
标题: 一到关于多态的题 B b = new B();A a = b; 最后a为什么等于10? [打印本页]
作者: java_zbj 时间: 2016-1-26 23:00
标题: 一到关于多态的题 B b = new B();A a = b; 最后a为什么等于10?
class A {
public int i = 10;
}
class B extends A{
public int i = 20;
}
public class Test{
public static void main(String args[]){
B b = new B();
A a = b;
System.out.println(b.i);
System.out.println(a.i);
}
}
各位大神,主要想问一下为什么a等于10?
作者: 划江北上 时间: 2016-1-26 23:19
A a=new b这样子看你就明白了哦。
作者: fury1994 时间: 2016-1-27 10:02
~~~~~~~~~~~~~~~~~~~~
作者: Mayer 时间: 2016-1-27 10:19
二楼说的对:多态中,父类调用对象指向子类,该对象的变量和静态变量的编译和运行都沿用父类的。
作者: z4951061 时间: 2016-1-27 12:40
继承貌似只有方法是用的子类
作者: 刺客015 时间: 2016-1-27 22:22
成员变量 编译和运行都看左边
A a=new b
作者: 悠悠天下 时间: 2016-1-27 22:31
成员变量看左边就行了
作者: only-hou 时间: 2016-1-27 23:00
对头 书上是这么说的
作者: 西贝 时间: 2016-1-27 23:13
这个是多态,A a = new B(); 编译和运行都看左边。具体执行过程,自己画一个内存图,就明白了
作者: D.TF 时间: 2016-1-28 11:24
楼上说的都对.我不说了,看L
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |