java向上轉型方法呼叫的問題

2021-06-29 12:00:09 字數 529 閱讀 9406

看**:

public class base

}public class sub extends

public class test

}

列印的結果是:sub print !
向上轉型,父類的應用呼叫之類的方法沒有問題,但是當子類的引數變為:print(sring... str)時,test.print("hello"),呼叫的卻是父類的方法。子類的方法按說應該是接收字串沒有問題的,但是卻呼叫了父類的方法。第三種情況,父類的方法引數為string... str,子類的方法引數格式為string str時,這時呼叫test.print("hello"),輸出的卻是sub print,這就更難理解了,明明子類方法接收的只是字串陣列,傳的是字串,卻能呼叫!
第四種情況,父類的為 string str,子類的為空時,又呼叫了父類的方法。好詭異。
有知道原因的請指教

Java多型向上 向下轉型問題

推薦資源站 向上轉型假定父類為動物,子類為狗,父類有乙個方法發聲 狗繼承並覆蓋了乙個發聲方法。在子類重寫該方法 則 動物 a new 狗 這就為向上轉型a.發聲 在呼叫 a.發聲 時呼叫的是狗的發聲 也可調動物類其他方法 但不能呼叫狗類方法 向上轉型都會成功,是安全的。就像說狗是動物沒問題。向下轉型...

Java向上向下轉型

向上轉型 b extends a,a a new b 就是向上轉型,此時a的型別為a,指向b,可以理解為把子類物件轉換成了父類物件,即父類的引用指向子類的物件,此時a不能呼叫子類自己新建的方法和變數,但若子類中重寫了父類的某個方法,那麼在呼叫這個方法時,將會呼叫子類的這個方法。向上轉型不存在風險 向...

Java 多型(向上轉型)

先來看一段 class baseclass public void test public class subclass extends baseclass public void sub public static void main string args 說明 當把乙個子類物件直接賦給父類的引...