Разлика между виртуалния и абстрактния метод

Ключова разлика: Абстрактните методи са методите, които са декларирани, но нямат реализация. Използват се виртуални методи за прилагане на полиморфизъм, базиран на типа. Извлеченият клас има гъвкавост при повторното прилагане на виртуалния метод на базовия клас, като използва ключовата дума 'override'.

В C #, ключовата дума abstract може да се използва както с класове, така и с методи. Абстрактните методи са тези методи, които нямат никаква форма на реализация. Въпреки това, логиката на реализация се получава от не-абстрактните класове, получени от тях. Това се постига чрез отмяна на този метод. Поради липсата на реално изпълнение, тялото на метода остава празно. Важно е да се отбележи, че обявяването на абстрактен метод е възможно само в абстрактен клас. Класовете, които не могат да бъдат инициализирани, са известни като абстрактни класове. Клас, който наследява от абстрактен клас, трябва да приложи всички методи, обявени като абстрактни в абстрактния клас.

Например -

публичен абстрактен клас exampleAbstractClass

{

публично абстрактно void exampleabstractMethod ();

публичен виртуален void nonAbstractMethod ()

{

Console.WriteLine ("Изпълнението е дефинирано в метода");

}

class normalNonAbstractClass: exampleAbstractClass

{

обществено отмяна void exampleabstractMethod ()

{

Console.WriteLine ("Презаписване на exampleabstractMethod на класа exampleAbstractClass");

}

}

Virtual също е ключова дума, която е свързана с модификация на метод, собственост, индексатор или декларация за събитие. Използването на тази ключова дума позволява модифициране на декларирания обект в производен клас. В този пример, извлеченият клас е заменил виртуалния метод, деклариран в базовия клас.

клас База

{

публичен виртуален void Test ()

{

Console.WriteLine ( "Base.Test");

}

}

клас Извлечен: База

{

обществен отмяна void Test ()

{

Console.WriteLine ( "Derived.Test");

}

}

Използват се виртуални методи за прилагане на полиморфизъм, базиран на типа. Извлеченият клас има гъвкавост при повторното прилагане на виртуалния метод на базовия клас, като използва ключовата дума override. И виртуалният, и абстрактният не могат да се използват заедно със статични или виртуални модификатори или модифициращи функции.

Сравнение между виртуалния и абстрактния метод:

Виртуален метод

Абстрактен метод

дефиниция

Използват се виртуални методи за прилагане на полиморфизъм, базиран на типа.

Абстрактните методи са методите, които са декларирани, но нямат реализация.

изпълнение

Да, може да има изпълнение

Не, не може да има изпълнение

Трябва да бъде отменено

Не е задължително

задължителен

Ключовата дума, използвана за разграничаване от други методи

Виртуален

абстрактен

клас

Виртуалният метод, съдържащ клас, може да бъде инстанциран.

Клас, съдържащ абстрактен метод, не може да бъде инстанциран. Тя може да се наследи само.

Обхват

Обхват на виртуалния метод само за членовете.

Обхват на абстрактния метод за членове и класове.

Метод, който трябва да бъде изпълнен (тип клас на обектна база)

Родителската реализация ще бъде извиквана само в случай, че в конкретния клас не е предвидено изпълнение.

Конкретно изпълнение

Метод, който трябва да бъде изпълнен (обект-конкретен тип клас)

Конкретно изпълнение

Конкретно изпълнение

Препоръчано

Свързани Статии

  • разлика между: Разлика между овнешкото и агнешко

    Разлика между овнешкото и агнешко

    Ключова разлика: Овче и агнешко месо е овце. Разликата между двете е възрастта на овцете, от която е добито месото. Агнешкото е млада овца, а овнешкото месо е от по-старите овце. И овче, и агнешко месо е от опитомени овце. Разликата между двете е възрастта на овцете, от която е добито месото. Агнешкото е млада овца,
  • разлика между: Разлика между демонстриране и илюстриране

    Разлика между демонстриране и илюстриране

    Ключова разлика: Илюстрира използва изображения, допълнителен текст, картини и диаграми, за да разработи нещо. От друга страна, демонстрирайте обяснения чрез действия. Английският е доста сложен език за хора, които не са местни за него. Има много думи, които са сходни в правописа, но имат значения, които
  • разлика между: Разлика между XOLO Q800 и Nokia Lumia 620

    Разлика между XOLO Q800 и Nokia Lumia 620

    Ключовата разлика: Xolo Q800 е четириядрен 1.2 GHz смартфон, задвижван от MTK MT6589 и 1 GB RAM. Телефонът работи на Android 4.1 (Jelly Bean). Той разполага с 4.5-инчов екран с резолюция от 540 x 960 пиксела. Nokia Lumia 620 е насочена към купувачите от първо ниво, които искат да изпробват Windows Phone 8, но не
  • разлика между: Разлика между социологията и психологията

    Разлика между социологията и психологията

    Ключова разлика: Социологията е изследване на човешкото социално поведение. Изследването се фокусира върху разбирането на различните социални дейности, функции, структури и роли на човешкото общество. Психологията е изучаването на човешкия ум и неговото функциониране. Психологията е разнообразна дисциплина, свързана с разбирането на функцията на мозъка, както и с прил
  • разлика между: Разлика между груби и курсови

    Разлика между груби и курсови

    Ключова разлика : Терминът "груб" обикновено се отнася до текстура, по-специално груба или груба текстура. Грубата текстура обикновено идва от факта, че нещо е съставено от големи груби зърна или частици. Като има предвид, че терминът "курс" може да се отнася до маршрут или посока на пътуване, или може да се отнася до маршрут или посока на пътуване, т.е. об
  • разлика между: Разлика между граничните и шизоафективните разстройства

    Разлика между граничните и шизоафективните разстройства

    Ключова разлика: Гранично разстройство на личността е психическо състояние, при което хората изпитват безразсъдно и импулсивно поведение, нестабилни настроения и взаимоотношения. Шизоафективното разстройство е психично състояние, при което човек проявява повтарящо се ненормално настроение и психотични компоненти. Гранично разстро
  • разлика между: Разлика между горила и партизанка

    Разлика между горила и партизанка

    Ключова разлика: Горилите са най-големите маймуни, които принадлежат към едноименния род Gorilla. От друга страна, партизаните са членове на неправилна и независима въоръжена сила, която се бори с по-силни сили. Gorilla и Guerilla може да изглеждат едно и също нещо и човек може да очаква, че той е правилният правопис, а другият е грешен. Това обаче не е така. Gorilla и Gueri
  • разлика между: Разлика между Северна и Южна Индия

    Разлика между Северна и Южна Индия

    Ключова разлика: Северна Индия представлява северната част на Индия. Тя включва шестте северноазиатски щати Пенджаб, Джаму и Кашмир, Делхи, Харяна, Химачал Прадеш, Утаракханд, както и Съюзната територия на Чандигарх. Южна Индия представлява южната част на Индия. Той включва. Той включва щатите Телангана, Андра Прадеш, Карнатака, Тамил Наду, Керала, както и обединените територии на Лакшадвееп
  • разлика между: Разлика между директива и инструкция

    Разлика между директива и инструкция

    Ключова разлика: Директивата е предимно заповед, обикновено издадена от орган. Директивата може да установи политика, да възложи отговорности, да определи цели и да делегира правомощия на работещите в и с авторитетната цифра. Инструкциите, от друга страна, действат като насоки. Те често се появяват като поредица от стъпки или етапи, които трябва да се изпълнят един след друг. Инструкциите са свързани предимно

Избор На Редактора

Разлика между смартфон и Superphone

Ключова разлика: Смартфоните са всички мобилни телефони, които са подобни на мини компютъра. Смартфоните предлагат разнообразие от функции, които позволяват разширени изчислителни възможности и свързаност. Суперфонът е смартфон с по-добри функции, софтуер и хардуер. Според Samsung, смартфонът със суперфон трябва да предлага следните характеристики: процесор с минимум 1 GHz, хуб