공부/java

자바(java)의 오버로딩(Overloading)

샤샤샤샤 2023. 1. 23. 16:39

메소드 오버로딩(Overloading) - 메소드 확장

매개변수의 타입과 갯수를 다르게 함으로서 함수의 기능을 확장하는 것을 말한다.

이를 사용하면 함수를 계속 만들지 않고, 기존에 있는 함수의 매개변수를 달리함으로서 계속 사용 가능하다.

 

    static void echo() { //메아리처럼 콘솔에 출력해주는 함수
        System.out.println("echo");
    }
    static void echo(int param){
        System.out.println("echo:"+param);
    }

위의 함수를 생각해보자.

함수의 이름이 똑같으나, 밑의 함수는 pram이라는 매개변수를 갖는다.

echo();
echo( 10 );                            출력값: 홍길동
                                               홍길동:10

이 기능을 통해 우리는 println에 문자열형과 정수형, 실수형 모두 사용가능하다.

 

public class ex70 {
    //메소드 오버로딩(Overloading - 과적) : 메소드 확장
    //  : 매개변수를 다르게 함으로 함수의 기능을 확장하는 것.
    //  :       (타입과 갯수)
    //  장점 : 함수이름을 계속 만들지 않고 같은 함수를 매개변수를 달리함으로
    //        계속 사용할 수 있다.
    //        println( int param ), println( String param ), ....

    //기술면접에 자주 나오는 질문
    //1. 메소드 오버로딩 vs 오버라이딩(Overriding)의 차이점은?
    //2. 추상화 클래스 vs 인터페이스의 차이점은?

    public static void main(String[] args) {
			echo();
			echo( 10 );
			echo( "홍길동" );
			echo( 10, "홍길동" );
    }
    static void echo() { //메아리처럼 콘솔에 출력해주는 함수
        System.out.println("echo");
    }
    static void echo(int param){
        System.out.println("echo:"+param);
    }
    static void echo(String param){
        System.out.println("echo:"+param);
    }
    static void echo(int param1, String param2){
        System.out.println("echo:"+param1+","+param2);
    }

}

 

'공부 > java' 카테고리의 다른 글

자바(java)의 클래스 상속  (0) 2023.01.23
자바(java)의 싱글톤 패턴  (1) 2023.01.23
자바(java)의 정렬 알고리즘(버블, 선택, 삽입)  (0) 2023.01.23
자바(java)의 열거형 표현  (0) 2023.01.23
자바(java)의 배열  (0) 2023.01.23