Как вызвать метод подкласса из объекта суперкласса? - PullRequest
0 голосов
/ 26 января 2012

В следующем простом коде я пытаюсь получить доступ к методу PrintMessage, который определен в подклассе. Я создал объект SuperClass и инициировал экземпляр SubClass в этом. Я хочу понять, почему это не так?

Я получаю следующую ошибку при выполнении кода.

Ошибка 1 «.SuperClass» не содержит определения для «PrintMessage», и не удалось найти метод расширения «PrintMessage», принимающий первый аргумент типа «SuperClass» (вы пропустили директиву using или ссылку на сборку?)

 class Program
    {
        static void Main(string[] args)
        {
            SuperClass objSuperClass = new SubClass();

            //The following statement gives me error
            objSuperClass.PrintMessage();

        }
    }

    public abstract class SuperClass 
    {

    }

    public class SubClass : SuperClass
    {
        public void PrintMessage()
        {
            Console.WriteLine("Testing");
        }

    }
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2012

U может привести objSuperClass к SubClass и сможет вызывать метод подкласса следующим образом

((SubClass)objSuperClass).PrintMessage();

Если хотите, можете пройти через this .(Модифицированная версия вашего кода)

0 голосов
/ 26 января 2012

У вас нет определения базового класса или реализации "PrintMessage".Либо определите абстрактный / конкретный «PrintMethod» в базовом классе и переопределите его в подклассе.

Cheers, Sharath

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...