안녕하세요.
오늘은 자바에서 중요한 개념인 오버라이딩(Overriding)과 오버로딩(Overloading)에 대해 알아보겠습니다.
이 두 개념은 객체 지향 프로그래밍에서 다형성을 구현하는 핵심적인 역할을 합니다.
오버라이딩(Overriding)은 무엇인가?
오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의하는 개념입니다.
즉, 상속 관계에 있는 클래스 간에 동일한 메서드 시그니처(매개변수 타입, 반환 타입, 이름)를 가진
메서드를 하위 클래스에서 새롭게 구현하는 것을 말합니다.
또한, 오버라이딩을 통해서 하위 클래스는 상위 클래스의 동작을 변경하거나 확장할 수 있습니다.
오버라이딩의 규칙
class Computer {
void PowerOn() {
System.out.println("컴퓨터 전원을 눌렀습니다.");
}
}
class Com_1 extends PowerOn() {
@Override
void PowerOn() {
System.out.println("컴퓨터 전원이 켜집니다.");
}
}
- 접근 제어자는 상위 클래스의 메서드보다 더 넓은 범위로 변경할 수 없다.
- 상위 클래스의 메서드가 'private'이면 오버라이딩이 불가능하다.
- 오버라이딩된 메서드는 예외 처리를 상위 클래스와 동일하게 해야한다.
- 메서드 매개변수 타입, 반환 타입, 이름이 상위 클래스의 메서드와 동일해야한다.
오버로딩(Overloading)은 무엇인가?
오버로딩은 같은 이름의 메서드이지만
매개변수의 타입, 개수, 순서가 다른 메서드를 여러 개 정의하는 것을 말합니다.
오버로딩을 사용하면 메서드의 이름을 기억하기 쉽고, 코드의 가독성을 높이면서,
메서드를 사용하는 개발자의 능률을 올릴 수 있습니다.
오버로딩의 규칙
class Temperature {
int temp(int a) {
return a;
}
double temp(double a) {
return a;
}
}
- 메서드의 이름은 동일해야 한다.
- 매개변수의 개수, 타입, 순서가 달라야 한다. (하나라도 해당되면 O)
이상으로 자바의 오버라이딩과 오버로딩에 대해 알아보았습니다.
오버라이딩과 오버로딩은 자바에서 다형성을 구현하는 데 핵심적인 개념입니다.
상속과 메서드의 다형성을 이해하고 이를 적절히 활용하는 것은 객체 지향 프로그래밍을
이해하는데 중요한 개념입니다.
때문에, 이러한 개념들을 잘 이해하고 활용하는 유지보수가 쉬운 코드를 작성하도록 노력해야 합니다.
'Java' 카테고리의 다른 글
[ JAVA ] 14. Java의 구동 원리 및 JVM(Java Virtual Machine)에 대해 알아보자. (0) | 2023.07.26 |
---|---|
[ JAVA ] 13. 인스턴스(Instance)는 왜 중요할까? (0) | 2023.07.25 |
[ JAVA ] 11. 추상 클래스(Abstract Class)와 인터페이스(Interface)에 대해 알아보자. (0) | 2023.07.15 |
[ JAVA ] 10. 추상화(Abstraction)란 무엇인가? (0) | 2023.07.15 |
[ JAVA ] 09. 객체(Object)와 인스턴스(Instance)는 같은 개념인가? (0) | 2023.07.09 |