Ключевая разница - перегрузка и переопределение в Java
Объектно-ориентированное программирование (ООП) - основная парадигма в разработке программного обеспечения. Это методология разработки программы с использованием классов и объектов. Класс - это план. Он описывает, что должно содержаться в объекте. Он определяет свойства или атрибуты и методы, из которых должен состоять объект. Следовательно, объект является экземпляром класса. Эти объекты взаимодействуют с другими объектами. Одной из основных концепций ООП является полиморфизм. Это способность объекта вести себя несколькими способами. Полиморфизм подразделяется на две части: перегрузку и переопределение. В этой статье обсуждается разница между этими двумя в Java. Ключевое различие между перегрузкой и переопределением в Java заключается в том, что перегрузка - это возможность создавать несколько методов с одним и тем же именем с разными реализациями, а переопределение - предоставление реализации для метода подкласса, который уже существует в суперклассе.
Что такое перегрузка в Java?
Перегрузка - это возможность создавать несколько методов с одним и тем же именем с разными реализациями. См. приведенный ниже код Java.
Рисунок 01: Java-программа, объясняющая перегрузку с разным количеством аргументов
Согласно приведенной выше программе, класс A содержит два метода с одинаковыми именами. Первый метод суммы имеет два параметра. Второй метод суммы имеет три параметра. При создании объекта типа A и вызове sum(2, 3) он вызовет метод sum с двумя параметрами sum(int a, int b) и вернет 5. При создании объекта типа A и вызове sum(2, 3, 4), он вызовет другой метод суммы с тремя параметрами, который представляет собой сумму (int a, int b, int c) и вернет 9.
Имя метода то же, но количество параметров другое. Можно заметить, что один и тот же объект ведет себя по-разному. Эта концепция известна как перегрузка. Его также называют статическим связыванием или полиморфизмом времени компиляции.
Также может быть перегружен разными типами данных. См. приведенный ниже код Java.
Рисунок 02: Программа на Java, объясняющая перегрузку с разным количеством аргументов
Согласно приведенной выше программе, класс A состоит из двух методов с одинаковыми именами. Метод sum(int a, int b) получает два целочисленных значения. Сумма(double a double b) получает два значения типа double. При создании объекта типа A и вызове sum(2, 3) он вызовет sum(int a, int b) и вернет значение 5. При вызове sum(3.4, 5.6) он вызовет sum(double a double б) и вернуть значение 9.0. В этом примере методы имеют одинаковое имя, но разные типы переменных. Это тоже перегружает.
Что такое переопределение в Java?
В Java можно создавать подклассы с уже существующими классами. Вместо создания нового класса с самого начала можно использовать свойства и методы уже существующего класса. Существующий класс является суперклассом, а производный класс - подклассом. Когда подкласс предоставляет реализацию метода, который уже находится в суперклассе, это называется переопределением. См. приведенную ниже программу Java.
Рисунок 03: Java-программа для переопределения
Согласно приведенной выше программе, класс A имеет метод display(). Класс B является расширением класса A, поэтому свойства и методы класса A доступны классу B. В классе B есть метод display() с определенной реализацией. При создании объекта типа A и вызове метода отображения он выдаст результат B. Несмотря на то, что класс A имеет метод отображения, он переопределяется методом отображения класса B. Подкласс реализует метод, уже существующий в суперклассе.
Эта концепция является типом полиморфизма и известна как переопределение. Это также называется поздним связыванием, динамическим связыванием, полиморфизмом во время выполнения.
Каковы сходства между перегрузкой и переопределением в Java?
- Оба являются типами полиморфизма.
- При перегрузке и переопределении методы имеют одно и то же имя.
В чем разница между перегрузкой и переопределением в Java?
Перегрузка и переопределение в Java |
|
Перегрузка в Java - это возможность создавать несколько методов с одним и тем же именем с разными реализациями. | Переопределение в Java обеспечивает конкретную реализацию метода подкласса для метода, уже существующего в суперклассе. |
Параметры | |
При перегрузке методы имеют одинаковое имя, но разное количество параметров или разный тип параметров. | При переопределении методы имеют одинаковые имена и параметры должны быть одинаковыми. |
Темы | |
В классе происходит перегрузка. | Переопределение происходит внутри двух классов, которые имеют отношение наследования. |
Синонимы | |
Перегрузка называется полиморфизмом времени компиляции. | Переопределение называется полиморфизмом времени выполнения. |
Резюме – Перегрузка и переопределение в Java
Полиморфизм - основная концепция объектно-ориентированного программирования. Он предоставляет объекту возможность вести себя несколькими способами. Это может быть либо перегрузка, либо переопределение. Перегрузка - это полиморфизм времени компиляции, а переопределение - полиморфизм времени выполнения. Они полезны при разработке программного обеспечения. Разница между переопределением и перегрузкой заключается в том, что перегрузка - это возможность создавать несколько методов с одним и тем же именем с разными реализациями, а переопределение - предоставление конкретной реализации в методе подкласса для метода, уже существующего в суперклассе. В Java можно реализовать как перегрузку, так и переопределение.
Загрузить PDF-файл Перегрузка и переопределение в Java
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономном режиме в соответствии с примечанием к цитированию. Загрузите PDF-версию здесь. Разница между перегрузкой и переопределением в Java