거인의 코딩일지
[기술면접대비] 오버로딩(Overloading) vs 오버라이딩(Overriding) 본문
728x90
오버로딩(Overloading)
- 오버로딩은 하나의 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
- 메서드의 이름은 동일하지만, 매개변수의 타입, 개수 또는 순서가 다른 여러 버전의 메서드를 정의할 수 있습니다.
(호출 시 전달된 인자에 따라 알맞은 버전의 메서드가 선택되어 실행됩니다.) - 오버로딩을 통해 같은 동작을 하는 메서드들을 하나의 이름으로 통일하여 사용자가 메서드를 더 쉽게 사용할 수 있도록 합니다.
- 오버로딩은 컴파일 시점에서 결정되며, 메서드의 시그니처(메서드의 이름, 매개변수 타입 및 개수)가 다르면 컴파일러가 구별합니다.
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
}
오버라이딩(Overriding)
- 오버라이딩은 상속 관계에 있는 두 클래스 간에 메서드를 재정의하는 것을 말합니다.
- 상위 클래스(부모 클래스)에 이미 정의된 메서드를 하위 클래스(자식 클래스)에서 동일한 변수로 다시 정의합니다.
- 이때, 메서드의 이름, 매개변수 타입, 개수가 동일해야 합니다.
- 하위 클래스의 오버라이딩된 메서드가 호출되면, 상위 클래스의 메서드가 아닌 하위 클래스의 메서드가 실행됩니다.
- 오버라이딩을 통해 상위 클래스의 동작을 하위 클래스에서 수정하거나 확장할 수 있습니다.
class Animal {
public void sound() {
System.out.println("Animal makes a sound.");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks.");
}
}
오버로딩은 하나의 클래스 내에 메서드 이름을 동일하게 유지하면서 다양한 버전의 메서드를 정의하는 것이며, 오버라이딩은 상속 관계에 있는 클래스 간에 메서드를 재정의하는 것!!
728x90
'기본이론' 카테고리의 다른 글
[MCS] MCS란????? 물류자동화기술? 스마트물류??? (2) | 2023.10.25 |
---|---|
[기술면접대비] 스프링(Spring)의 장점 (0) | 2023.07.19 |
[기술면접대비] Java의 5가지 특징 (0) | 2023.07.19 |
[기술면접 대비]INNER 조인과 OUTER조인의 정의와 차이점 (0) | 2023.07.13 |
[기술면접 대비] WebServer(웹서버) & WebApplicationServer(WAS) 차이 (0) | 2023.07.13 |