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

Оглавление:

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

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

Видео: Разница между переопределением и перегрузкой в C
Видео: Перегрузка конструкторов класса в C# | Что такое перегрузка | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | # 60 2024, Июль
Anonim

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

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

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

Что такое переопределение в C?

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

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

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

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

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

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

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

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

Ключевая разница между переопределением и перегрузкой в 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 заключается в том, что привязка вызова переопределенного метода к его определению происходит во время выполнения, а привязка вызова перегруженного метода к его определению - во время компиляции.

Рекомендуемые: