做java半年,却被一个继承的问题弄糊涂了,请大家帮帮忙
现有三个类,test4继承至test3,test3继承至test2,有两处疑问已在代码里标出,请大家仔细看看,谢谢!!!
public class test2 {
public String user = "test2";
public test2() {
}
public String getUser(){
System.out.println(this.user);//这里打印的为什么是"test2",而不是"test4"
user = getPassword();//这里执行的为什么是test3的方法,而不是本身定义的方法呢
return user;
}
public String getPassword(){
System.out.println(this.user);
return "hello test2";
}
}
public class test3 extends test2{
public String user = "test3";
public test3() {
}
public String getPassword(){
System.out.println(this.user);
return "hello test3";
}
}
public class test4 extends test3{
public String user = "test4";
public test4() {
}
public static void main(String[] args){
test4 t4 = new test4();
t4.getUser();
}
}
输出结果是:test2,test3