Как происходит вызов сокрытого метода под капотом?
Я знаю, как происходит вызов виртуальных метод под капотом, но ни у Голдштейна, ни у Рихтера я не нашёл инфу о том, как происходит вызов сокрытого метода. Так как это всё-таки происходит? Help me please. То есть как происходит вызов этого метода:
class A
{
public void DoSmth()
{
}
}
class B : A
{
public new void DoSmth()
{
}
}
class Program
{
public static void Main()
{
A a = new B();
a.DoSmth();
}
}
Ответы (2 шт):
Скрытые открытые виртуальные это всё наши абстрактные понимания сущности. На уровне вызова все определено идёт вызов того или иного метода, а которого именно определено во время компиляции/интерпретации.
Ответ на ваш вопрос можно почитать Тут
Идея сокрытия проста. С помощью new вы определяете новый метод соответственно каждый класс вызовет свою ф-ю
Вызов "сокрытого" метода производится, исходя из объявленного типа переменной, от которой этот метод вызывается. Определяется, какой метод вызывать, на этапе компиляции.
В Вашем примере: тип переменной a - A. Значит, вызовется метод A.DoSmth.