[問題] overloading和繼承
請問下面這段
class A {}
class B extends A {}
class C extends B {}
class D { int h(A x){System.out.println(1)} }
class E extends D { int h(C x){System.out.println(2)} }
class F extends E { int h(A x){System.out.println(3)} }
class G extends F { int h(B x){System.out.println(4)}
int h(C x){System.out.println(5)} }
然後跑:
B b=new C();
E e=new G();
e.h(b);
結果是3
可是做了一些其他測試
認為e.h(b)應該會從class G的函式開始找
找到int h(B x)這個來執行
有人能指點我一下嗎 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.122.245
推
06/22 11:07, , 1F
06/22 11:07, 1F
→
06/22 11:09, , 2F
06/22 11:09, 2F
推
06/22 23:53, , 3F
06/22 23:53, 3F
→
06/22 23:56, , 4F
06/22 23:56, 4F
→
06/23 06:14, , 5F
06/23 06:14, 5F