"//コンパイル"の行がコンパイルされ、なぜ "//コンパイルできません"という行がなぜなぜ表示されないのですか?スーパークラスからサブクラスへの暗黙の変換が許可されるのはなぜですか?
私はなぜAが暗黙のうちにBに変換できるのか分かりません。
public class SomeClass {
static public void Test() {
AClass a = new AClass();
BClass b = new BClass();
a = b; // Compiles
b = a; // Doesn't compile
}
}
public class AClass {
public void AMethod() {
Console.WriteLine("AMethod");
}
}
public class BClass : AClass {
public void BMethod() {
Console.WriteLine("BMethod");
}
}
ありがとうございます! foo 'での型に「バー」を変換しようとするだろう
foo = bar
ではA.
に変換可能である
動物園への旅行なしでOOPについて話すことはできません。 =) – JohnFx
ちょうどカモノハシは言及していません! –
Nitpick: "哺乳類"。 – McPherrinM