Login
Резюме для программиста
89957 просмотров
Перейти к просмотру всей ветки
in Antwort Программист 20.09.21 11:19, Zuletzt geändert 20.09.21 12:19 (alex445)
А вообще за подобные конствукции надо руки вырывать :)
Это всего лишь упрощённые задачки при приёме на работу джуниора. Вот ещё проще. Я тут даже типы не приводил. В реальном коде обычно запутаннее.
Что будет выведено? Без запуска и без подглядывания.
class Program { static void Main(string[] args) { new A().Method1(); new B().Method1(); new C().Method1(); new D().Method1(); A a = new B(); a.Method1(); a.Method2(); A aa = new C(); aa.Method1(); aa.Method2(); A aaa = new D(); aaa.Method1(); aaa.Method2(); B b = new D(); b.Method1(); b.Method2(); } } class A { public void Method1() { Console.WriteLine("A1"); Method2(); } public virtual void Method2() { Console.WriteLine("A2"); } } class B : A { public override void Method2() { Console.WriteLine("B2"); } } class C : A { public new void Method2() { Console.WriteLine("C2"); } } class D : B { public new void Method2() { Console.WriteLine("D2"); } }