разница между абстрактным методом и виртуальным методом
разница между абстрактным методом и виртуальным методом
Объясните это на одном примере
Учитывая, насколько легко ответить на этот вопрос в интернете, и то, как вы это формулируете ( как требование, с требованием для примера), я предполагаю, что это ваша домашняя работа. Читайте ваши тексты и делайте свою домашнюю работу.
Абстрактные методы-это те, которые не определены. Значит, если ваш метод не имеет своего тела, он абстрактен.
С другой стороны, если вы уже определили тело и хотите, чтобы классы, производящие его, могли переопределить его член, если они пожелают, вы определяете его как виртуальный.
Тот самый VB.NET эквивалент этих ключевых слов дает четкое представление об этом :
абстрактный == MustOverride
виртуальный == Overridable
Надеюсь, вы получили ответ.
Овации
:большой палец вверх:
В C#
язык документации (MSDN
) вы можете найти все, что вам нужно.
Например, вы можете найти информацию и примеры в "Виртуальный метод" и "Абстрактный метод".
:)
Полное сравнение виртуального и абстрактного приведено по следующей ссылке:
http://www.dotnetobject.com/Thread-Virtual-and-Abstract[^]
Это вопрос из 2010 года. Почему вы отвечаете на него? Вопрос уже решен.
http://msdn.microsoft.com/en-us/library/aa664435%28v=vs.71%29.aspx[^]
Эта ссылка полезна для вас...
An Abstract method must be override in child classes where as virtual method is not compulsory to override. An abstract method doesn't have implementation detail where as virtual method has it. only abstract class can haveabstract method, any class can have virtual method
Абстрактные методы по умолчанию пусты.
Абстрактный метод должен быть переопределен во всех производных классах.
Класс, в котором есть абстрактный метод, должен быть абстрактным.
Например - абстрактная пустота Getdata();
Он должен заканчиваться на (;) в абстрактном классе.
Виртуальный метод может иметь или не иметь тело по умолчанию.
Виртуальный метод может быть или не быть переопределен, это зависит от пользователя.
Например - Virtual void Getdata() {..........}