BOOKJAVA Telegram 3947
В чем разница между перегрузкой метода и переопределением метода в 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
👍3



tgoop.com/BookJava/3947
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

A vandalised bank during the 2019 protest. File photo: May James/HKFP. More>> As five out of seven counts were serious, Hui sentenced Ng to six years and six months in jail. Add up to 50 administrators Administrators
from us


Telegram Библиотека Java разработчика
FROM American