«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Чем переопределение метода и перегрузка метода отличаются в Java?

Чем переопределение метода и перегрузка метода отличаются в Java?

Опубликовано 21 ноября 2024 г.
Просматривать:927

How do Method Overriding and Method Overloading Differ in Java?

Различие динамического и статического полиморфизма в Java

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

Динамический и статический полиморфизм

Полиморфизм позволяет одному имени метода иметь несколько реализаций в зависимости от тип объекта, вызывающий его. Существует два основных типа полиморфизма:

  • Динамический полиморфизм (привязка во время выполнения): Вызовы методов разрешаются во время выполнения на основе фактического класса объекта. Это происходит при переопределении метода в подклассах и также известно как позднее связывание.
  • Статический полиморфизм (привязка во время компиляции): Вызовы методов разрешаются во время компиляции на основе объявленного типа ссылочная переменная. Это происходит при перегрузке метода в том же классе и также известно как раннее связывание.

Перегрузка метода

Перегрузка метода — это форма статического полиморфизма, при которой несколько методы с одинаковым именем существуют в одном классе, но различаются параметрами. При вызове перегруженного метода Java определяет соответствующий метод для вызова на основе количества и типов переданных аргументов.

Пример кода (перегрузка метода):

class Calculation {
  void sum(int a, int b) { System.out.println(a   b); }
  void sum(int a, int b, int c) { System.out.println(a   b   c); }

  public static void main(String[] args) {
    Calculation obj = new Calculation();
    obj.sum(10, 10, 10); // Output: 30
    obj.sum(20, 20); // Output: 40
  }
}

Переопределение метода

Переопределение метода — это форма динамического полиморфизма, при которой методы с одинаковым именем и сигнатурой объявляются в разных классах, но имеют общий родительский класс. При вызове переопределенного метода Java определяет вызываемый метод на основе фактического класса объекта во время выполнения.

Пример кода (переопределение метода):

class Animal {
  public void move() {
    System.out.println("Animals can move");
  }
}

class Dog extends Animal {

  public void move() {
    System.out.println("Dogs can walk and run");
  }
}

public class TestDog {

  public static void main(String[] args) {
    Animal a = new Animal(); // Animal reference and object
    Animal b = new Dog(); // Animal reference but Dog object

    a.move(); // Output: Animals can move

    b.move(); // Output: Dogs can walk and run
  }
}
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3