Java

Java 오버로딩 & 오버라이딩

김한토 2024. 8. 27. 09:31
반응형

오버로딩(Overloading)

: 동일한 이름의 메서드를 여러개 정의하되,  매개변수의 타입이나 개수, 순서를 다르게 설정하는 것을 말한다. 같은 클래스 내에서 사용할 수 있다는 특징이 있다. 같은 기능을 수행하지만, 다양한 입력을 처리할 수 있다. 

 

class MathUtils {
    int add(int a, int b) {
        return a + b;
    }

    double add(double a, double b) {
        return a + b;
    }

    int add(int a, int b, int c) {
        return a + b + c;
    }
}

 

오버라이딩(Overriding)

: 오버라이딩은 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것이다. 부모 클래스에서 정의된 메서드와 동일한 이름과 매개변수를 갖고 있어야 하며, 기능을 변경하거나 확장할 수 있다. 

 

class AdvancedCalc extends Calc {
    // 부모 클래스의 add 메서드를 오버라이딩
    @Override
    int add(int a, int b) {
        System.out.println("두 정수를 더합니다.");
        return super.add(a, b);  // 부모 클래스의 add 메서드 호출
    }
    
    // 추가로, 두 개의 실수를 더하는 메서드도 정의
    double add(double a, double b) {
        System.out.println("두 실수를 더합니다.");
        return super.add(a, b);
    }
}

 

오버로딩 VS 오버라이딩

  1. 정의 위치:
    • 오버로딩: 같은 클래스 내에서 정의됨.
    • 오버라이딩: 부모 클래스와 자식 클래스 간의 관계에서 정의됨.
  2. 매개변수:
    • 오버로딩: 매개변수의 타입, 개수, 순서가 다름.
    • 오버라이딩: 매개변수는 동일해야 함.
  3. 바인딩 시점:
    • 오버로딩: 컴파일 타임에 결정됨.
    • 오버라이딩: 런타임에 결정됨.
  4. 목적:
    • 오버로딩: 같은 기능을 다양한 형태로 제공하기 위해.
    • 오버라이딩: 부모 클래스의 기능을 변경하거나 확장하기 위해.
반응형

'Java' 카테고리의 다른 글

Java 패키지  (0) 2024.08.27
Java 생성자  (0) 2024.08.26
Java 컬렉션  (0) 2024.08.26
Java 변수 기본형 참조형  (0) 2024.08.26
자바 기초 자료 모음  (1) 2024.08.09