[Java] 오버로드와 오버라이딩

HR·2022년 10월 9일
0

Java

목록 보기
3/3

오버로드

메소드의 이름은 같지만, 파라미터의 형식이나 개수가 다른 메소드를 의미한다

메소드의 이름을 절약할 수 있다.

public class Main {
    public static void main(String[] args) {
        TestClass test = new TestClass();
        test.printCoffee("아메리카노");
        test.printCoffee("아메리카노", "라떼");
        test.printCoffee("아메리카노", 3000);
    }
}

class TestClass{
    public void printCoffee(String coffeeName){
        System.out.println(coffeeName);
    }
    public void printCoffee(String coffeeName, String coffeeName2){
        System.out.println(coffeeName + ", " + coffeeName2);
    }
    public void printCoffee(String coffeeName, int price){
        System.out.println(coffeeName + ", " + price);
    }
}

Result

아메리카노
아메리카노, 라떼
아메리카노, 3000

오버라이딩

상위 클래스로 물려받은 자식 클래스에서 메소드를 재정의 하는 것

public class Main {
    public static void main(String[] args) {
        ChildClass test = new ChildClass();
        test.print();
    }
}

class ParentClass{
    public void print(){
        System.out.println("부모 클래스");
    }
}

class ChildClass extends ParentClass{
    @Override
    public void print() {
        System.out.println("자식에서 재정의");
    }
}

Result

자식에서 재정의

Override 어노테이션

어노테이션은 소스 코드의 메타데이터를 표현하는 데 사용한다.
메소드가 오버라이드 되었는지 검증하고, 만약 부모 클래스와 구현해야할 인터페이스에서 해당 메소드를 찾을 수 없을 경우 컴파일 오류가 발생한다.

profile
Hello World :D

0개의 댓글