[問題] 一小段java程式轉換成C#
各位好 如果有一小段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
08/11 16:22, 1F
→
08/11 16:30, , 2F
08/11 16:30, 2F
推
08/19 02:45, , 3F
08/19 02:45, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):