tgoop.com/BookJava/3947
Create:
Last Update:
Last Update:
В чем разница между перегрузкой метода и переопределением метода в Java?
🧠 Перегрузка метода (Method Overloading)
Это когда в одном классе есть методы с одинаковым именем, но разными сигнатурами (количеством или типами параметров).
* Компилятор выбирает метод на этапе compile-time.
* Можно менять:
* количество параметров
* тип параметров
* порядок параметров
* Нельзя перегружать метод, меняя только возвращаемый тип.
💡 Пример:
public class MathUtil {
public int sum(int a, int b) { return a + b; }
public double sum(double a, double b) { return a + b; }
public int sum(int a, int b, int c) { return a + b + c; }
}
🧠 Переопределение метода (Method Overriding)
Это когда в классе-наследнике мы заново реализуем метод, который уже определён в родительском классе или интерфейсе.
* Определяется на этапе runtime (динамический полиморфизм).
* Сигнатура метода должна быть та же (имя, параметры, порядок, типы).
* Возвращаемый тип может быть ковариантным (подтипом оригинального).
* Доступ не может быть строже, чем у родительского метода.
* Метод родителя должен быть
public
/ protected
(не private
).* Для обязательности переопределения используют
@Override
.💡 Пример:
class Animal {
public void makeSound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}
👉 @BookJava
BY Библиотека Java разработчика
Share with your friend now:
tgoop.com/BookJava/3947