困惑2 Base b=new Subclass();因为B要向上转行,所以父类不可以访问子类的变量,只可以访问和父类一样的函数! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是多态性的问题。即Base b = new Subclass();中的b实际上是Subclass对象。所以b的x值是Subclass的值。 zgpp(要把专家分提上去)说的对,是谁的对象就调用谁 没有覆盖之说,Subclass继承了Base,实际上也继承了它的所有变量和方法,也就是说在Subclass里面其实有两个变量x,两个方法method,在子类的方法中可用super.x和super.method()访问来访父类相应的方法可以证明这一点。而子类定义的x和method其实也隐含了一个参数this,this.x和this.method。在System.out.println(b.x)中,正如panpan221()所说,b被转成Base类的对象,它访问的是Base中的x。在System.out.println(b.method())中,其实这里调用的是在子类中定义的method()方法,这就是动态绑定,也就是所谓的多态性,而在mothod()中返回的是this.x,也就是在子类中定义的变量x。 100分求助Socket网络编程 请问java源代码怎么编译? 很奇怪,爲什麽string.endwith沒有用了? \r,\n,\r\n的问题 runtime 执行程序的问题 怎么用java的帮助 java返回值的问题?? 混淆器retroguard 运行出现 的错误 EntityBean 的部署错误!(再线等待)(急急急急急急) 一个关于鼠标事件的简单问题,好急!!!! 刚学java 对于classpath还有点不明白的地方 请抽出点时间来看看!
即Base b = new Subclass();中的b实际上是Subclass对象。所以b的x值是Subclass的值。