русский
Germany.ruForen → Архив Досок→ Programmierung

Резюме для программиста

20.09.21 12:16
Re: Резюме для программиста
 
alex445 свой человек
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");
    }
}
 

Sprung zu