[問題] 關於JAVA屬性覆寫的機制
各位好:
程式碼如下
class Father{
String name = "Father";
String greeting(){
return "class Father";
}
}
class Son extends Father{
String name = "Son";
String greeting(){
return "class Son";
}
void foo(){
System.out.println(((Son)this).name);
System.out.println(((Father)this).name);
System.out.println(((Son)this).greeting());
System.out.println(((Father)this).greeting());
}
}
public static void main(String[] args){
new Son().foo();
}
ANS:
Son
Father
class Son
class Son
疑惑:
請問為什麼((Father)this).name,轉型成為Father類別時,是列印出Father類別的
屬性name;而(Father)this).greeting(),卻會因為覆寫機制列印出class Son。
屬性不是也會覆寫嗎?new Son()時,相同都有String name不是會覆寫過去嗎?
謝謝解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.167.23
→
05/30 22:42, , 1F
05/30 22:42, 1F
→
05/30 22:44, , 2F
05/30 22:44, 2F
推
05/30 23:45, , 3F
05/30 23:45, 3F
→
05/30 23:52, , 4F
05/30 23:52, 4F