Наследование метода - C#

Узнай цену своей работы

Формулировка задачи:

Приветствую, формучане. Вообщем, имеется класс.
Class A
{
    protected first_method ()
    {
    }
 
    other_method()
    {
        first_method()
    }
}
От него наследуется другой, в котором переопределяется first_method():
Class B : A
{
    first_method()
    {
    }
}
И я вызываю метод other_method () экземпляра класса B, который унаследовал этот метод:
Class Main
{
    B obj = new obj;
    obj.other_method();
}
Метод other_method() вызывается правильно, но тот, который еще в нем (first_method()) вызывается не переопределенный, а базовый. Так должно быть? И если да, то как это исправить? Неужели мне придется переопределять еще и other_method() в классе В?

Решение задачи: «Наследование метода»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication80
{
    class Program
    {
        static void Main(string[] args)
        {
            B obj = new B();
            obj.other_method();
            Console.Read();
        }
    }
    class A
    {
        protected virtual void first_method()
        {
            Console.WriteLine("HOLY");
        }
 
        public void other_method()
        {
            first_method();
        }
    }
 
    class B : A
    {
        protected override void first_method()
        {
            Console.WriteLine("SHIT");
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5
Похожие ответы