응애개발자
article thumbnail
728x90

오버로딩(Overloading)

오버로딩은 같은 클래스 내에서 메서드 이름은 같고 매개변수(파라미터)의 타입, 갯수를 다르게 구현하는 방식을 의미합니다. 

만약 하나의 클래스 안에 같은 이름의 메서드를 정의한다면 컴파일 에러가 발생하게 됩니다.

public class Test {

    void overloading(){
        System.out.println("매개변수가 없는 메서드");
    }

    void overloading(int a, int b) {
        System.out.println("매개변수가 int 형 2개로 이루어진 메서드");
    }
    
    void overloading(String a, int b){
        System.out.println("매개변수가 int 형 1개, String 1개로 이루어진 메서드");
    }
}

 

더보기
주의할점은 리턴값만 다른 것은 오버로딩을 할 수 없습니다. 예를들어 클래스 안에
int overloading(int a, int b){
return a;
}
이런식으로 코드가 존재하면 매개변수가 같은 메서드가 존재하기 때문에 컴파일 에러가 발생합니다.

 

오버라이딩(Overriding)

오버라이딩은 상위 클래스로부터 상속받은 메서드의 내용을 새롭게 재정의하는 것을 말합니다.

public class Parent {
    public void overriding(){
        System.out.println("부모 메서드");
    }
}
public class Child extends Parent{

    @Override
    public void overriding(){
        System.out.println("부모 클래스의 메서드를 상속받아 내용을 재정의");
    }
}
더보기

하위 클래스에서 상위 클래스의 추상 메서드를 재정의할 때는 굳이 @Override를 달지 않아도 됩니다. 하지만 우리가 @Override 어노테이션을 의식적으로 달면 실수로 재정의 했을 때 컴파일러가 자동으로 알려줄 것입니다. 

 

'CS > Java' 카테고리의 다른 글

[Java] static 이란 ?  (0) 2024.04.29
[Java] 추상클래스와 인터페이스의 차이  (0) 2024.04.19
[Java] 제네릭이란?(Generic)  (0) 2024.04.04
[Java] Garbage Collection(GC) 이란?  (0) 2024.03.01
[Java] Java 메모리 영역  (0) 2024.02.19
profile

응애개발자

@Eungae-D

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