Ключевое различие - перегрузка против переопределения в Java
Объектно-ориентированное программирование (ООП) - основная парадигма в разработке программного обеспечения. Это методология разработки программы с использованием классов и объектов. Класс - это план. Он описывает, что должно содержаться в объекте. Он определяет свойства или атрибуты и методы, из которых должен состоять объект. Следовательно, объект является экземпляром класса. Эти объекты общаются с другими объектами. Одно из основных понятий ООП - полиморфизм. Это способность объекта вести себя по-разному. Полиморфизм подразделяется на две части: перегрузка и переопределение. В этой статье обсуждается разница между ними в Java. Ключевое различие между перегрузкой и переопределением в Java заключается в том, что перегрузка - это возможность создавать несколько методов с одним и тем же именем с разными реализациями, а переопределение - это предоставление реализации для метода подкласса, который уже существует в суперклассе.
СОДЕРЖАНИЕ
1. Обзор и основные различия
2. Что является перегрузкой в Java
3. Что переопределяет в Java
4. Сходства между перегрузкой и переопределением в Java
5. Сравнение бок о бок - перегрузка и переопределение в Java в табличной форме
6. Резюме
Что такое перегрузка в Java?
Перегрузка - это возможность создавать несколько методов с одним и тем же именем с разными реализациями. См. Приведенный ниже код Java.
Рисунок 01: Программа Java, объясняющая перегрузку с различным количеством аргументов
Согласно приведенной выше программе, класс A содержит два метода с одинаковым именем. Первый метод суммы имеет два параметра. Второй метод сумм имеет три параметра. При создании объекта типа A и вызове sum (2,3) он вызывает метод sum с двумя параметрами, которые являются sum (int a, int b), и возвращает 5. При создании объекта типа A и вызове sum (2, 3,4), он вызовет другой метод sum с тремя параметрами, который представляет собой сумму (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-файл Overloading vs Overriding in Java
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Загрузите PDF-версию здесь. Разница между перегрузкой и переопределением в Java.