Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[기술면접대비] 오버로딩(Overloading) vs 오버라이딩(Overriding) 본문

기본이론

[기술면접대비] 오버로딩(Overloading) vs 오버라이딩(Overriding)

코딩거인 2023. 7. 19. 19:19
728x90
오버로딩(Overloading)
  1. 오버로딩은 하나의 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
  2. 메서드의 이름은 동일하지만, 매개변수의 타입, 개수 또는 순서가 다른 여러 버전의 메서드를 정의할 수 있습니다.
    (호출 시 전달된 인자에 따라 알맞은 버전의 메서드가 선택되어 실행됩니다.)
  3. 오버로딩을 통해 같은 동작을 하는 메서드들을 하나의 이름으로 통일하여 사용자가 메서드를 더 쉽게 사용할 수 있도록 합니다.
  4. 오버로딩은 컴파일 시점에서 결정되며, 메서드의 시그니처(메서드의 이름, 매개변수 타입 및 개수)가 다르면 컴파일러가 구별합니다.
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    
    public double add(double a, double b) {
        return a + b;
    }
}

 

오버라이딩(Overriding)
  1. 오버라이딩은 상속 관계에 있는 두 클래스 간에 메서드를 재정의하는 것을 말합니다.
  2. 상위 클래스(부모 클래스)에 이미 정의된 메서드를 하위 클래스(자식 클래스)에서 동일한 변수로 다시 정의합니다.
  3. 이때, 메서드의 이름, 매개변수 타입, 개수가 동일해야 합니다.
  4. 하위 클래스의 오버라이딩된 메서드가 호출되면, 상위 클래스의 메서드가 아닌 하위 클래스의 메서드가 실행됩니다.
  5. 오버라이딩을 통해 상위 클래스의 동작을 하위 클래스에서 수정하거나 확장할 수 있습니다.
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