程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-Java動態綁定,對象已經向上轉型了,為何優先使用的方法依然是子類的方法。

java-Java動態綁定,對象已經向上轉型了,為何優先使用的方法依然是子類的方法。

編輯:編程綜合問答
Java動態綁定,對象已經向上轉型了,為何優先使用的方法依然是子類的方法。

情況如下,我寫了個測試類。

son類

public class son extends father
{
public son()
{
fs="new son";
}
public void say()
{
System.out.println("son say()");
}

father類

public class father

{
String fs;

father()
{
    fs="new father";
}


public void say()
{

    System.out.println("father say()");

}

}

執行:
father ff=new son();
ff.say(); //“son say()”

    執行的結果盡然是輸出了“son say()”,也就是說執行了son裡的say方法,這是怎麼回事啊?
    而且我將son類中的say()方法刪掉後,ff.say()的結果為預期的“father say()”,ff對象向上轉型後為什麼優先執行的方法是子類的方法啊。

最佳回答:


原來是我概念模糊了,向上轉型後的確是只能使用父類才有的方法,但如果子類重寫了這個方法,會調用重寫的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved