오버로딩(Overloading)과 오버라이딩(Overriding)
2024. 2. 3. 22:36ㆍ백엔드/JAVA
# 오버로딩 (Overloading)
- 클래스 내 이미 같은 이름의 메소드가 존재 하는 경우 매개변수의 개수 또는 타입이 다른 경우 같은 메소드명을 가진 메소드를 정의하는 것
- 메소드명, 매개변수 조건이 같고 리턴 값이 다른 경우 오버로딩 불가능
class Calculator {
// 정수형 두 개를 더하는 메서드
int add(int a, int b) {
return a + b;
}
// 실수형 두 개를 더하는 메서드
double add(double a, double b) {
return a + b;
}
}
# 오버라이딩 (Overriding)
- 상위(부모)클래스로부터 정의되고, 상속받은 메소드를 하위(자식) 클래스에서 동일한 시그니처(메소드명, 매개변수, 리턴값)를 가지고 재정의 하는것
class Animal {
void makeSound() {
System.out.println("동물이 소리를 낸다.");
}
}
class Dog extends Animal {
@Override
void makeSound() {
// 부모 클래스의 makeSound() 메서드를 호출하여 동일한 동작을 수행
super.makeSound();
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("야옹~");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound(); // 출력: 동물이 소리를 낸다.
Cat cat = new Cat();
cat.makeSound(); // 출력: 야옹~
}
}
'백엔드 > JAVA' 카테고리의 다른 글
인터페이스와 추상클래스의 차이 (0) | 2024.02.04 |
---|---|
JVM 그리고 코드를 실행하는 과정에 대하여 (0) | 2024.02.03 |
멀티모듈 적용하기 (2) | 2024.01.18 |
repeat() : 문자열 반복 (0) | 2023.12.02 |
오버라이딩을 구현할 때 @Override 어노테이션을 사용하는 이유 (1) | 2023.10.24 |