[問題] 一小段java程式轉換成C#

看板java作者 (4545454554)時間9年前 (2015/08/10 23:05), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
各位好 如果有一小段java程式 如下 class A{} class B extends A{} class C extends B{} class P{ int m(B x) {return 1;} } class Q extends P{ int m(A x) {return 2;} } class R extends Q{ int m(C x) {return 3;} } class S extends R{ int m(B x) {return 4;} int m(C x) {return 5;} } R s = new S(); System.out.println(s.m(new B())); // 4 我把它轉換成C# 如下 public class A { } public class B : A { } public class C : B { } public class P { public virtual int m(B x) { return 1; } } public class Q : P { public virtual int m(A x) { return 2; } } public class R : Q{ public virtual int m(C x) { return 3; } } public class S : R{ public override int m(B x) { return 4; } public override int m(C x) { return 5; } } R s = new S(); Response.Write(s.m(new B()) ); // 2 很明顯輸出不一樣 java輸出是4 C#輸出是2 想請問是我語法轉換上錯誤? 還是有些語法並不能100%轉換過去? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.239.189.237 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1439219107.A.51C.html

08/11 16:22, , 1F
s.m的型態是?
08/11 16:22, 1F

08/11 16:30, , 2F
你是說s.m() return的type嗎? 是int
08/11 16:30, 2F

08/19 02:45, , 3F
我問的是 signature
08/19 02:45, 3F
文章代碼(AID): #1LoBsZKS (java)
文章代碼(AID): #1LoBsZKS (java)