나를 기록하다
article thumbnail
Published 2023. 4. 4. 20:43
[Java] 오버로딩과 오버라이딩 Java
반응형

오버로딩(Overloading)

오버로딩(Overloading)은 같은 이름의 메소드(Method)를 매개변수(Parameter)의 개수나 타입을 다르게 하여 정의하는 것입니다. 즉, 같은 이름으로 여러 개의 메소드를 만들 수 있습니다. 오버로딩을 사용하면 메소드의 이름을 다양하게 사용할 수 있어서 프로그래밍 코드의 가독성을 높일 수 있습니다.

예를 들어, int형 변수를 더하는 add 메소드가 있다면, 매개변수가 하나인 add 메소드는 int형 변수 하나를 받아들이고, 매개변수가 두 개인 add 메소드는 int형 변수 두 개를 받아들입니다. 이렇게 매개변수의 개수나 타입을 다르게 하여 같은 이름으로 메소드를 여러 개 정의하는 것이 오버로딩입니다.

 

오버로딩 예시:

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

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

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

위의 예시에서, Calculator 클래스에는 같은 이름의 add 메소드가 3개가 있습니다. 첫 번째 메소드는 int형 매개변수 2개를 받아들이고, 두 번째 메소드는 int형 매개변수 3개를 받아들이고, 세 번째 메소드는 double형 매개변수 2개를 받아들입니다. 이렇게 메소드의 매개변수의 개수나 타입을 다르게 하여 같은 이름으로 여러 개의 메소드를 정의한 것이 오버로딩입니다.

 

 

오버라이딩(Overriding)

오버라이딩(Overriding)은 상속 관계에서 자식 클래스가 부모 클래스의 메소드를 재정의하는 것입니다. 자식 클래스에서 부모 클래스의 메소드를 사용할 때 부모 클래스의 메소드와 같은 이름과 매개변수를 가지는 메소드를 자식 클래스에서 다시 정의하면, 자식 클래스에서 정의한 메소드가 호출됩니다. 이렇게 부모 클래스의 메소드를 자식 클래스에서 다시 정의하는 것이 오버라이딩입니다.

오버라이딩을 사용하면 자식 클래스에서 부모 클래스의 메소드를 필요에 따라 다시 정의하여 사용할 수 있습니다. 이를 통해 자식 클래스에서 부모 클래스의 메소드를 더 유연하게 사용할 수 있습니다.

 

오버라이딩 예시:

public class Animal {
    public void move() {
        System.out.println("동물이 움직입니다.");
    }
}

public class Cat extends Animal {
    @Override
    public void move() {
        System.out.println("고양이가 네 발로 걷습니다.");
    }
}

위의 예시에서, Animal 클래스에는 move 메소드가 있습니다. 이 메소드는 "동물이 움직입니다." 라는 문자열을 출력합니다. Cat 클래스는 Animal 클래스를 상속받아서 만들어졌습니다. Cat 클래스에서는 move 메소드를 다시 정의하고, "고양이가 네 발로 걷습니다." 라는 문자열을 출력하도록 만들었습니다. 이렇게 자식 클래스에서 부모 클래스의 메소드를 다시 정의한 것이 오버라이딩입니다.

 

반응형
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...