Разница между переопределением и перегрузкой в ​​C #

Ключевая разница - переопределение против перегрузка в C #
 

ключевое отличие между переопределением и перегрузкой в ​​C # является то, что привязка переопределенного вызова метода к его определению происходит во время выполнения, в то время как привязка перегруженного вызова метода к его определению происходит во время компиляции.

C # - это язык программирования общего назначения, разработанный Microsoft. Основным преимуществом C # является то, что он поддерживает объектно-ориентированное программирование (ООП). Одним из столпов ООП является полиморфизм. Это дает объекту несколько вариантов поведения. Существует два типа полиморфизма, известные как переопределение и перегрузка. В этой статье обсуждается разница между переопределением метода и перегрузкой в ​​C #.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что переопределяет в C #
3. Что такое перегрузка в C #
4. Сходства между переопределением и перегрузкой в ​​C #
5. Сравнение бок о бок - переопределение и перегрузка в C # в табличной форме
6. Резюме

Что переопределяет в C #?

В ООП есть еще одна важная концепция - наследование. Это использовать атрибуты и методы уже существующего класса. Это улучшает возможность повторного использования кода. Уже существующий класс является базовым, а новый класс называется производным классом. В переопределении полиморфизма должны быть базовый класс и производный класс. Привязка переопределенного вызова метода к определению происходит во время выполнения. Пример таков.

Рисунок 01: Программа на C # с переопределением

Согласно вышеприведенной программе, класс Shape является базовым классом и содержит метод display. Класс Rectangle и Triangle являются производными классами. Эти производные классы также имеют тот же метод отображения с их собственными реализациями.

Сначала создается ссылочная переменная obj. Он указывает на объект Shape. Итак, метод отображения класса Shape будет выполнен. Затем ссылочная переменная указывает на объект Rectangle. Итак, метод отображения класса Rectangle будет выполнен. Наконец, ссылочная переменная указывает на объект Triangle. Итак, метод отображения класса Triangle будет выполнен. Метод отображения базового класса переопределяется методами отображения производных классов.

Способ запуска определяется во время выполнения. Класс Shape написан с ключевым словом «virtual». Классы Rectangle и Triangle записываются с ключевым словом override. Если эти ключевые слова не используются, выходные данные будут печатать содержимое метода отображения класса Shape для всех.

Что такое перегрузка в C #?

При перегрузке несколько методов имеют одно и то же имя, но с разными параметрами. Параметры могут быть разных типов. Методы также могут иметь различное количество параметров. Перегрузка метода происходит в том же классе. Привязка перегруженных методов к определению происходит во время компиляции. См. Ниже программу C #.

Рисунок 02: Программа на C # с перегрузкой

Согласно вышеприведенной программе, в классе A есть два метода с одинаковым именем, которые называются sum. У них разные типы параметров. В основной программе объект A создан. Сумма (2,3) вызовет метод суммы с целыми числами. Сумма (5.1, 7.94) вызовет метод суммы с двойными значениями. Оба метода имеют одинаковое имя и одинаковое количество параметров. Но типы параметров разные. Требуемый метод вызывается соответственно. Перегрузка также может возникнуть, если имена методов и типы параметров совпадают, но количество параметров отличается.

В чем сходство переопределения и перегрузки в C #?

  • Переопределение и перегрузка в C # являются типами полиморфизма..

В чем разница между переопределением и перегрузкой в ​​C #?

Переопределение против перегрузки в C #

Переопределение в C # - предоставить конкретную реализацию в методе производного класса для метода, уже существующего в базовом классе.. Перегрузка в C # заключается в создании нескольких методов с одинаковым именем с разными реализациями..
 параметры
В C # Overriding методы имеют одинаковое имя, одинаковые типы параметров и одинаковое количество параметров.. В C # перегрузке методы имеют одинаковое имя, но разное количество параметров или другой тип параметров.
Вхождение
В C # переопределение происходит внутри базового класса и производного класса. В C # перегрузка происходит внутри одного класса.
 Время привязки
Привязка переопределенного вызова метода к его определению происходит во время выполнения. Привязка перегруженного вызова метода к его определению происходит во время компиляции.
Синонимы
Переопределение называется как полиморфизм во время выполнения, динамический полиморфизм или позднее связывание. Перегрузка называется полиморфизм времени компиляции, статический полиморфизм или раннее связывание.

Резюме - Переопределение против перегрузка в C #

Переопределение и перегрузка - это два типа полиморфизма. Разница между переопределением и перегрузкой в ​​C # заключается в том, что привязка переопределенного вызова метода к его определению происходит во время выполнения, в то время как привязка перегруженного вызова метода к его определению происходит во время компиляции.

Ссылка:

1.Кумар, Мукеш. C # Corner. Доступна здесь
2.tutorialspoint.com. «C # Полиморфизм». TutorialsPointДоступна здесь
3.tutorialspoint.com. «Типы данных C #». TutorialsPoint, доступно здесь