using static System.Console;
public class Program {
public static void Main() {
var filha = new Filha();
filha.y = 1;
var mae = (Mae)filha;
var filha2 = (Filha)mae;
WriteLine(filha2.y);
mae.Virtual();
mae.Real();
filha2.Virtual();
filha2.Real();
}
}
class Mae {
public virtual void Virtual() => WriteLine("Mãe");
public void Real() => WriteLine("Mãe");
}
class Filha : Mae {
public int y;
public override void Virtual() => WriteLine("Filha");
public new void Real() => WriteLine("Filha");
}
//https://pt.stackoverflow.com/q/449584/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwoKcHVibGljIGNsYXNzIFByb2dyYW0gewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7CgkJdmFyIGZpbGhhID0gbmV3IEZpbGhhKCk7CgkJZmlsaGEueSA9IDE7CgkJdmFyIG1hZSA9IChNYWUpZmlsaGE7CgkJdmFyIGZpbGhhMiA9IChGaWxoYSltYWU7CgkJV3JpdGVMaW5lKGZpbGhhMi55KTsKCQltYWUuVmlydHVhbCgpOwoJCW1hZS5SZWFsKCk7CgkJZmlsaGEyLlZpcnR1YWwoKTsKCQlmaWxoYTIuUmVhbCgpOwoJfQp9CgpjbGFzcyBNYWUgewoJcHVibGljIHZpcnR1YWwgdm9pZCBWaXJ0dWFsKCkgPT4gV3JpdGVMaW5lKCJNw6NlIik7CglwdWJsaWMgdm9pZCBSZWFsKCkgPT4gV3JpdGVMaW5lKCJNw6NlIik7Cn0KY2xhc3MgRmlsaGEgOiBNYWUgewoJcHVibGljIGludCB5OwoJcHVibGljIG92ZXJyaWRlIHZvaWQgVmlydHVhbCgpID0+IFdyaXRlTGluZSgiRmlsaGEiKTsKCXB1YmxpYyBuZXcgdm9pZCBSZWFsKCkgPT4gV3JpdGVMaW5lKCJGaWxoYSIpOwp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS80NDk1ODQvMTAx