🔎 오버로딩이 뭔데?
같은 이름의 메소드를 여러 개 정의하는 것
이 때 매개변수의 개수나 타입이 다르면 구분해서 사용할 수 있음
예를 들어, 사람의 이름을 출력하는 메소드를 정의할 때, 이름만 받는 메소드와 이름과 나이를 함께 받는 메소드를 모두 정의할 수 있음
public class Example {
public void printName(String name) {
System.out.println("이름: " + name);
}
public void printName(String name, int age) {
System.out.println("이름: " + name + ", 나이: " + age);
}
}
🔎 오버라이딩이 뭔데?
오버라이딩은 상속 관계에서 부모 클래스의 메소드를 자식 클래스에서 재정의 하는 것
자식클래스에서 재정의한 메소드가 호출되어 실행됨
예를 들어, 동물 클래스에서 소리를 내는 메소드를 정의했다면, 이를 상속받은 개 클래스에서는 개 울음 소리를 내도록 재정의 할 수 있음
public class Animal {
public void makeSound() {
System.out.println("동물이 소리를 냅니다.");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("멍멍!");
}
}
❓ 정리하자면
오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하고, 각각의 메서드에 매개변수를 다르게 받도록 구현하는 것입니다. 이 때, 메서드 이름은 같지만 매개변수의 개수, 타입, 순서 중 하나 이상이 달라야 합니다.
오버라이딩(Overriding)은 상위 클래스에 이미 정의된 메서드를 하위 클래스에서 재정의하여 사용하는 것입니다. 즉, 상속 관계에 있는 클래스 간에 같은 이름의 메서드를 정의하는 것입니다. 이 때, 메서드 이름, 매개변수 타입, 개수, 순서, 반환 타입이 모두 같아야 합니다.
오버로딩과 오버라이딩은 이름이 비슷하지만, 목적이 다릅니다. 오버로딩은 메서드 이름을 일관되게 유지하면서 다양한 매개변수를 지원하기 위해 사용되고, 오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의하여 다른 동작을 수행하게 하기 위해 사용됩니다.
'개발공간 > Java' 카테고리의 다른 글
💭 Stack & Queue (스택 & 큐) (0) | 2023.04.16 |
---|---|
[codeup] 원하는 문자가 입력될 때까지 반복 출력하기 (0) | 2023.04.08 |
[ codeup] 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구하기 (0) | 2023.04.08 |
💡싱글톤이 뭔데? (0) | 2023.04.06 |
[JAVA] 🚌 버스 도착 정보 출력하기 (0) | 2023.04.03 |