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");
}
}