Пусть имеется 3 класса A B и C. B наследуется от А, а C в свою очередь от B, следовательно B получит всё что есть у A, а C получит всё от A и B. И вот вопрос что будет происходить если в классе А имеется виртуальный метод void speak(), а класс B его просто переопределяет и также поступает класс С, и меня собственно интересует будут ли классы В и С иметь в себе базовую версию метода от класса А или она каким-то образом скрывается при переопределении и допустим класс C получит лишь переопределённую версию от класса В,а самая первая версия метода из класса А вообще не дойдёт до класса С.
Если в наследнике метод помечен модификатором override
, то он полностью переопределяет поведение класса-родителя, связанное с этим методом. Однако в наследнике можно вызвать реализацию virtual
-метода родителя с помощью ключевого слова base
. Например, так:
public class A
{
public virtual void Speak()
{
Console.WriteLine("I speak as A");
}
}
public class B : A
{
public override void Speak()
{
base.Speak();
Console.WriteLine("I can also speak as B");
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу реализовать хранимую процедуру, которая будет принимать название таблицы, колонки и значение для повышения производительности, тк
Возможно ли перенести триггеры в другую(точно такую же) таблицу в MySQL? У меня есть таблица test, со временем я её архивирую и на ее месте создаю...