using System;
public abstract class MyBase
{
public abstract bool GetValue(bool value = true);
}
public class MyDerived : MyBase
{
public override bool GetValue(bool value = false)
{
return value;
}
}
public class Test
{
public static void Main()
{
var derived = new MyDerived();
Console.WriteLine("Value = {0}", derived.GetValue());
MyBase myBase = derived;
Console.WriteLine("Value = {0}", myBase.GetValue());
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGFic3RyYWN0IGNsYXNzIE15QmFzZQp7CglwdWJsaWMgYWJzdHJhY3QgYm9vbCBHZXRWYWx1ZShib29sIHZhbHVlID0gdHJ1ZSk7Cn0KCnB1YmxpYyBjbGFzcyBNeURlcml2ZWQgOiBNeUJhc2UKewoJcHVibGljIG92ZXJyaWRlIGJvb2wgR2V0VmFsdWUoYm9vbCB2YWx1ZSA9IGZhbHNlKQoJewoJCXJldHVybiB2YWx1ZTsKCX0KfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBkZXJpdmVkID0gbmV3IE15RGVyaXZlZCgpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCJWYWx1ZSA9IHswfSIsIGRlcml2ZWQuR2V0VmFsdWUoKSk7CgkJTXlCYXNlIG15QmFzZSA9IGRlcml2ZWQ7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIlZhbHVlID0gezB9IiwgbXlCYXNlLkdldFZhbHVlKCkpOwoJfQp9Cg==