상세 컨텐츠

본문 제목

[자바 CS지식] 오버로딩과 오버라이딩의 차이

JAVA

by 소란한소란 2024. 2. 12. 15:44

본문

728x90

 

프로그래밍에서 오버로딩과 오버라이딩은 두 가지 중요한 개념으로, 각각 메서드와 함수의 다양한 사용을 가능케 하는데, 이 둘 간에는 몇 가지 주요한 차이점이 존재합니다.


 

오버로딩 (Overloading)

오버로딩동일한 이름의 메서드 또는 함수를 여러 번 정의하는 것을 의미합니다. 그러나 각각의 메서드는 서로 다른 매개변수를 가져야 하며, 매개변수의 타입, 개수, 순서 등이 달라야 합니다. 이를 통해 같은 이름의 메서드를 가독성 있게 정의할 수 있습니다.

 

소스코드 예를 들어,

 

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

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

 

위의 예시에서 Calculator 클래스 내에 add 메서드가 두 번 정의되어 있습니다. 하나는 정수형 매개변수를, 다른 하나는 실수형 매개변수를 받습니다. 이것이 오버로딩의 예입니다.

 


 

오버라이딩 (Overriding)

오버라이딩부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 새롭게 구현하는 것을 의미합니다. 이때 메서드의 시그니처(이름, 매개변수, 반환타입)는 동일해야 합니다. 이는 객체 지향 프로그래밍에서 다형성을 구현하는데 사용됩니다.

 

소스코드 예를 들어,

 

class Animal {
    public void makeSound() {
        System.out.println("Some generic sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof! Woof!");
    }  
}

 

위의 예시에서 Dog 클래스는 Animal 클래스의 makeSound 메서드를 오버라이딩하여 개 특유의 소리를 출력하도록 재정의하고 있습니다.

 


 

이처럼 오버로딩과 오버라이딩은 프로그래밍에서 다양성과 유연성을 활용하기 위한 중요한 도구로 사용되며, 각각의 특징을 잘 이해하여 적절한 상황에서 사용하는 것이 중요합니다.

 

728x90

관련글 더보기