Qualcuno può dirmi perché compila la riga con "// Compiles" e perché la riga con "// Does not Compile" non lo è?Perché la conversione implicita è consentita dalla superclasse alla sottoclasse?
Non capisco perché A sia implicitamente convertibile in B, non viceversa.
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");
}
}
grazie!
non posso parlare di OOP senza una visita allo zoo . =) – JohnFx
non menzionare l'ornitorinco! –
Nitpick: "Mammiferi". – McPherrinM