когда нам нужна виртуальная функция, поскольку мы можем получить то же чувство, используя простое одноуровневое наследование? - PullRequest
2 голосов
/ 17 августа 2010

Хотя мы можем почувствовать виртуальную функцию, унаследовав класс и расширив функциональность функции в базовом классе, когда нам следует перейти к виртуальной функции?

Ответы [ 2 ]

3 голосов
/ 17 августа 2010

Виртуальные методы следует использовать, если вы хотите обеспечить поведение по умолчанию в базовом классе. Дочерние классы могут затем переопределить эту функцию и обеспечить свое собственное, более конкретное поведение.

Например:

  class Animal
  { 
   public virtual void Say() 
   { 
      //default behaviour
      Console.WriteLine("Animal makes generic noise"); 
   } 
  } 

  class Dog : Animal
  { 
    public override void Say()
    { 
      //specific behaviour
      Console.WriteLine("Dog barks.");
    } 
  } 
2 голосов
/ 17 августа 2010

Для реализации Полиморфизм в ОО иерархиях.

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