728x90
오버로딩(overloading)과 오버라이딩(overriding)
💡오버로딩(overloading)
• 하나의 클래스 내부에서 확장
• 메소드 이름은 동일해야 함
• 매개변수의 개수 또는 타입이 달라야 함
• 리턴 타입은 자유로움
• 매개변수는 같고 리턴 타입이 다르면 성립하지 않음
💡오버라이딩(overriding)
• 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의
• 메소드의 동작만을 재정의
• 메소드의 이름, 매개변수, 리턴값이 모두 일치해야 함
• 접근 제어자를 더 좁은 범위로 변경할 수 없음
💡오버로딩(overloading)과 오버라이딩(overriding)의 차이점
오버로딩(overloading)은 새로운 메소드의 정의하는 것이고, 오버라이딩(overriding)은 상속받은 기존의 메소드를 재정의하는 것이다.
아래의 예제를 보면 알기 쉽다.
// 부모 class
class 복숭아 {
void aboutPeach() {
System.out.println("복숭아는 맛있다.");
}
}
// 복숭아 class를 상속받은 물복 class
class 물복 extends 복숭아 {
// 복숭아 class로부터 상속받은 aboutPeach() 메소드 오버라이딩(재정의)
void aboutPeach() {
System.out.println("나는 물복파다!");
}
// aboutPeach() 메소드 오버로딩
void aboutPeach(int price) {
System.out.println("물복 가격 : " + price + "원");
}
}
public class Fruit {
public static void main(String[] args) {
복숭아 peach = new 복숭아();
물복 softPeach = new 물복();
peach.aboutPeach();
softPeach.aboutPeach();
softPeach.aboutPeach(1500);
}
실행결과
복숭아는 맛있다.
나는 물복파다!
물복 가격 1500원
코드의 마지막 세줄로 정리해 보면 다음과 같다.
728x90
'Backend > Java' 카테고리의 다른 글
[JAVA]Map에서 key값이 소문자로 변환되어 들어가는 현상과 해결 (0) | 2024.01.11 |
---|---|
[Java]List에 Map을 add할 때 같은 값이 반복되어 들어가는 현상 (0) | 2023.11.10 |