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

Ключова разлика: Абстрактните методи са методите, които са декларирани, но нямат реализация. Използват се виртуални методи за прилагане на полиморфизъм, базиран на типа. Извлеченият клас има гъвкавост при повторното прилагане на виртуалния метод на базовия клас, като използва ключовата дума '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. И виртуалният, и абстрактният не могат да се използват заедно със статични или виртуални модификатори или модифициращи функции.

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

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

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

дефиниция

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

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

изпълнение

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

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

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

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

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

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

Виртуален

абстрактен

клас

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

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

Обхват

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

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

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

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

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

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

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

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

Препоръчано

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

  • популярни сравнения: Разлика между дънки и деним

    Разлика между дънки и деним

    Ключова разлика : Разликата между дънките и дънковете е, че първата е дреха, която е произведена с помощта на деним, който е тъкан, използвана за производството на различни дрехи, освен дънки. Един чифт дънки е почти станал обичайното ежедневно облекло на света. Днес почти всеки друг човек притежава поне един чифт дънки в своя гардероб. Причина
  • популярни сравнения: Разлика между 3G и 4G

    Разлика между 3G и 4G

    Ключова разлика: 3G означава "трето поколение" и се отнася до мрежов стандарт в технологията за мобилен телефон, която е в състояние да осигури високоскоростна услуга за предаване на данни на мобилни устройства. От друга страна, 4G означава „четвърто поколение“ и се отнася до генерирането на клетъчни стандарти. Той е наследник на стандартите за 3G и 2G семейства. В 3G и 4G “G” озн
  • популярни сравнения: Разлика между Apache и Tomcat

    Разлика между Apache и Tomcat

    Ключова разлика: Apache е краткото име за "Apache HTTP сървър". Той предоставя многобройни функции като CGI, SSL и виртуални домейни. Tomcat е уеб контейнер, който изпълнява уеб приложенията, базирани на сървлети и страници на JavaServer. Може да се използва и като HTTP сървър. И двете се различават по много функции, като скорост, конфигурация и т.н. Apache и Tomcat, тези термини се използва
  • популярни сравнения: Разлика между факти и становища

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

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

    Разлика между Уикипедия и Енциклопедия

    Ключова разлика: Уикипедия е интернет енциклопедия, която съдържа качени от потребителя информация, докато енциклопедии са общи справочни книги, които са написани от опитни познати лица. Уикипедия стартира на 15 януари 2001 г. от Джими Уелс и Лари Сангер . Името "Уикипедия" (което е портаменто на уики и енциклопедия) е измислено о
  • популярни сравнения: Разлика между 3G и Broadband

    Разлика между 3G и Broadband

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

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

    Ключова разлика: католицизмът вярва в Исус Христос като Божий син и обещания Месия на хората. Ислямът вярва, че Исус и Мохамед са пророци на Господа и им е възложено да донесат истинското Божие слово на хората. Ислямът и католицизмът са монотеистични авраамически религии, което означава, че те могат да проследят общия си произход до Авраам. Католицизмът е най-голямата и най-бог
  • популярни сравнения: Разлика между археологията и палеонтологията

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

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

    Разлика между Холивуд и Боливуд

    Ключова разлика: Освен че е представител на американската филмова индустрия, Холивуд е и физическо място в Лос Анджелис, Калифорния, САЩ. Холивуд е станал популярен по целия свят, като много от неговите филми са пуснати в почти всички страни. Боливуд е неформален термин, който се използва за представяне на индусската филмова индустрия в Индия. Боливуд е само част от индийското кино и не е физическо място, а по-скоро представителен терм

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

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

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