using System;
public class Test
{
public static void Main()
{
Base d = new Derived();
d.func();
}
}
class Base
{
public virtual void func()
{
Console.WriteLine("base - func");
}
public Base()
{
func();
}
}
class Derived : Base
{
public override void func()
{
Console.WriteLine("derive - func: crasht wenn 'base - func' nicht vorher aufgerufen wurde");
}
}
dXNpbmcgU3lzdGVtOwpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkgICAgQmFzZSBkID0gbmV3IERlcml2ZWQoKTsKCSAgICBkLmZ1bmMoKTsKCX0KfQoKY2xhc3MgQmFzZQp7CiAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGZ1bmMoKQogICAgewogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJiYXNlIC0gZnVuYyIpOwogICAgfQoKICAgIHB1YmxpYyBCYXNlKCkKICAgIHsKICAgICAgICBmdW5jKCk7CiAgICB9Cn0KCmNsYXNzIERlcml2ZWQgOiBCYXNlCnsKICAgIHB1YmxpYyBvdmVycmlkZSB2b2lkICBmdW5jKCkKICAgIHsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiZGVyaXZlIC0gZnVuYzogY3Jhc2h0IHdlbm4gJ2Jhc2UgLSBmdW5jJyBuaWNodCB2b3JoZXIgYXVmZ2VydWZlbiB3dXJkZSIpOwogICAgfQp9