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

Основное отличие: абстрактные методы - это методы, которые объявлены, но не имеют никакой реализации. Виртуальные методы используются для реализации полиморфизма на основе типов. Производный класс обладает гибкостью для повторной реализации виртуального метода базового класса с помощью ключевого слова «переопределить».

В C # абстрактное ключевое слово может использоваться как с классами, так и с методами. Абстрактные методы - это те методы, которые не имеют какой-либо формы реализации. Однако логику реализации получают неабстрактные классы, производные от них. Это достигается путем переопределения этого метода. Из-за отсутствия фактической реализации тело метода остается пустым. Важно отметить, что объявление абстрактного метода возможно только в абстрактном классе. Классы, которые не могут быть инициализированы, называются абстрактными классами. Класс, который наследуется от абстрактного класса, должен реализовывать все методы, объявленные как абстрактные в абстрактном классе.

Например -

открытый абстрактный класс exampleAbstractClass

{

public abstract void exampleabstractMethod ();

публичная виртуальная пустота nonAbstractMethod ()

{

Console.WriteLine («Реализация определена в методе»);

}

класс normalNonAbstractClass: exampleAbstractClass

{

public override void exampleabstractMethod ()

{

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

}

}

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

базовый класс

{

общедоступный виртуальный тест void ()

{

Console.WriteLine ( "Base.Test");

}

}

Производный класс: База

{

публичное переопределение void Test ()

{

Console.WriteLine ( "Derived.Test");

}

}

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

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

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

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

Определение

Виртуальные методы используются для реализации полиморфизма на основе типов.

Абстрактные методы - это методы, которые объявлены, но не имеют никакой реализации.

Реализация

Да, может иметь реализацию

Нет, не может быть никакой реализации

Нужно переопределить

Не обязательно

обязательное

Ключевое слово используется, чтобы отличить его от других типов методов

виртуальный

Аннотация

Учебный класс

Класс, содержащий виртуальный метод, может быть создан.

Класс, содержащий абстрактный метод, не может быть создан. Это может быть только унаследовано.

Объем

Область действия виртуального метода только для членов.

Область применения абстрактного метода для членов и классов.

Метод для выполнения (тип базового класса объекта)

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

Конкретная реализация

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

Конкретная реализация

Конкретная реализация

Рекомендуем

Похожие статьи

  • разница между: Разница между мужским и женским обрезанием

    Разница между мужским и женским обрезанием

    Основное отличие: мужское обрезание - это процесс удаления крайней плоти, покрывающей головку полового члена. Обрезание у женщин - это процесс удаления части или полных наружных женских половых органов. Это также известно как калечение женских половых органов, или FGM. Обрезание является широко обсуждаемой темой, которая граничит с этикой и религией. Для многих людей
  • разница между: Разница между зрелым и незрелым

    Разница между зрелым и незрелым

    Ключевое отличие: зрелость и незрелость - это термины, связанные с эмоциональным интеллектом. Зрелость в основном означает думать и вести себя как взрослый. Незрелость, с другой стороны, это когда кто-то думает и ведет себя как ребенок. В самых основных терминах зрелый человек - это тот, кто исполняет свой возраст, тогда как незрелый человек ведет себя так, как будто он на самом деле моложе своего возраста. Людям часто дают
  • разница между: Разница между помидорами и помидорами черри

    Разница между помидорами и помидорами черри

    Основное различие : ключевое различие между томатами и томатами черри состоит в том, что первое больше второго. Тем не менее, есть немного других различий, основанных на их вкусе, использовании и пользе для здоровья. Они спелые, красного, зеленого или желтого цвета, острые на вкус, очень сочные и широко используются в приготовлении несладких блюд во всем кулинарном мире. Хотя они могут пок
  • разница между: Разница между Snapdeal и Amazon

    Разница между Snapdeal и Amazon

    Основное отличие: Snapdeal - это индийская компания, основанная предпринимателями Куналом Балом и Рохитом Бансалом в 2010 году. Amazon.in является дочерней компанией материнской компании Amazon.com. Он начал свою деятельность в Индии в 2012 году с запуском Junglee.com Покупки, для которых требовались часы на охоту, торговлю и поез
  • разница между: Разница между пиаром и рекламой

    Разница между пиаром и рекламой

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

    Разница между тем, как и что

    Ключевое различие: «Как» и «Что» - это два вопроса, которые могут быть использованы для различных целей на английском языке. Основное различие между ними состоит в том, что как узнать, каким образом что-то произошло, в то время как то, что используется, чтобы узнать о чем-либо, или описание вещи или ситуации. Обычно задают вопрос, чтобы узнать о чем-то, что-то понять, что-то искать, получить ответ и т. Д. «Как» и «Что» - это два таких вопроса, которые могут использоваться в различных целях на английском языке. Тем не менее, они различаются по способу,
  • разница между: Разница между Asus FonePad и Samsung Galaxy Note 10.1

    Разница между Asus FonePad и Samsung Galaxy Note 10.1

    Ключевое отличие: Asus объявила о выпуске нового фаблета Asus Fonepad. Fonepad - это 7-дюймовый планшет Android, который позволяет пользователям совершать телефонные звонки, поднося устройство к уху. Фаблет оснащен 7-дюймовым сенсорным дисплеем IPS со светодиодной подсветкой, который поддерживает мультитач до 10 человек. Экран имеет
  • разница между: Разница между абстрактным и конкретным языком

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

    Ключевое отличие: термин «абстрактный» относится к способности думать о концепциях, которые находятся за пределами рамки, о концепциях, которые невозможно ощутить или испытать, используя только пять чувств. Конкретные существительные или понятия - это то, что обычно можно испытать, используя пять чувств: осязание, вкус, обоняние, зрение и звук. Язык - это мощный инструмент, кот
  • разница между: Разница между Java и PHP

    Разница между Java и PHP

    Ключевое отличие: Java - это язык программирования, на который повлиял язык Си. Он выводит большую часть своего синтаксиса из C и C ++, однако имеет меньше низкоуровневых средств, чем любой из них. Java - это язык программирования общего назначения, разработанный таким образом, чтобы иметь меньше зависимостей реализации по сравнению с предыдущим

Выбор редакции

Разница между ЗППП и ВИЧ

Ключевое отличие: ВИЧ - это вирус, который вызывает ослабление иммунной системы организма. Болезни, передающиеся половым путем (ЗППП), также известные как Инфекции, передающиеся половым путем (ИППП), или венерические заболевания (ВД) - это заболевания, которые передаются людьми в результате сексуального поведения и деятельности. Вы не можете точно различить ВИЧ (вирус иммунодефицита человека) и ЗППП, поскольку ВИЧ является одним из видов ЗППП. ЗППП или заболевания, передающиеся половым путем, - это заболевания или инфекции, которые передаются половым путем. ВИЧ - это венерическое заболевание, к