求大神解答下这个java程序的答案为什么是这个,最好详尽一些。 10

publicclassTestOne{publicstaticvoidmain(String[]args){Fatherpapa=newFather();Sonzi=ne... public class TestOne {
public static void main(String[] args){
Father papa = new Father();
Son zi = new Son();
papa = zi;
papa.test();
System.out.println(papa.x);
}
}
class Father{
int x=5;
public void test(){

System.out.println("this is father");
}
}
class Son extends Father{
int x=3;
public void test(){
System.out.println("this is son");
}
}

运行结果:this is son
5
展开
 我来答
不是很38
2016-11-13
知道答主
回答量:31
采纳率:0%
帮助的人:8.9万
展开全部
应该是因为方法可以重写,这种变量没有重写。 new的对象返回是Father,调用变量是用的Fathe类的,方法重写了,调用的就是Son类
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式