Ganesh_verma Ответов: 8

разница между абстрактным методом и виртуальным методом


разница между абстрактным методом и виртуальным методом
Объясните это на одном примере

8 Ответов

Рейтинг:
68

Christian Graus

Учитывая, насколько легко ответить на этот вопрос в интернете, и то, как вы это формулируете ( как требование, с требованием для примера), я предполагаю, что это ваша домашняя работа. Читайте ваши тексты и делайте свою домашнюю работу.


Рейтинг:
58

Abhishek Sur

Абстрактные методы-это те, которые не определены. Значит, если ваш метод не имеет своего тела, он абстрактен.

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

Тот самый VB.NET эквивалент этих ключевых слов дает четкое представление об этом :

абстрактный == MustOverride
виртуальный == Overridable

Надеюсь, вы получили ответ.

Овации
:большой палец вверх:


Рейтинг:
52

CPallini

В C# язык документации (MSDN) вы можете найти все, что вам нужно.
Например, вы можете найти информацию и примеры в "Виртуальный метод" и "Абстрактный метод".
:)


Рейтинг:
2

Asad Ali Malik

Полное сравнение виртуального и абстрактного приведено по следующей ссылке:

http://www.dotnetobject.com/Thread-Virtual-and-Abstract[^]


Thomas Daniels

Это вопрос из 2010 года. Почему вы отвечаете на него? Вопрос уже решен.

Рейтинг:
1

Kapil Rathod

http://msdn.microsoft.com/en-us/library/aa664435%28v=vs.71%29.aspx[^]


Эта ссылка полезна для вас...


Рейтинг:
1

Shambhoo kumar

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


Рейтинг:
1

casalgar

Абстрактные методы по умолчанию пусты.
Абстрактный метод должен быть переопределен во всех производных классах.
Класс, в котором есть абстрактный метод, должен быть абстрактным.
Например - абстрактная пустота Getdata();
Он должен заканчиваться на (;) в абстрактном классе.

Виртуальный метод может иметь или не иметь тело по умолчанию.
Виртуальный метод может быть или не быть переопределен, это зависит от пользователя.
Например - Virtual void Getdata() {..........}