[JAVA] Overriding

고민정·2024년 4월 4일

JAVA

목록 보기
14/32
post-thumbnail

🎇 Overriding

오버라이딩은 부모가 갖고있는 메서드를 자식이 똑같이 갖고 있으며 부모의 메서드를 수정 가능하다.

Overriding 오버라이딩
메서드를 재정의 하는 것

부모 클래스의 메소드를 자식 클래스에서 재정의하여 사용한다.

아래의 Car 클래스를 상속받아 오버라이딩하는 예제이다.

public class Car {
    String name;
    int carNumber;

    public void attach10(int carNumber){
        String finalCarNumber="10" + Integer.toString(carNumber) ;
        System.out.println(finalCarNumber);
    }

    public void bigLetter(String name){
        String finalLetter=name.toUpperCase();
        System.out.println(finalLetter);
    }

}
public class Bus extends Car{
    public void attach10(int carNumber){
        System.out.println("Bus");
    }
}

public class BudExam {
    public static void main(String[] args) {
        Bus bus = new Bus();
        bus.attach10(1234);
    }
}

이렇게 되면 1234 를 파라미터로 넣었음에도 불구하고 실행하면 Bus 라는 출력만 존재하게 된다.
이것이 바로 Car 부모 클래스의 attach10( ) 의 메서드를 오버라이딩함으로써 재정의한 것이다.

하지만 오버라이딩한다고 해서 부모의 메서드가 아예 사라지는 것은 아니다.
super 를 사용하면 부모의 메서드를 그대로 다시 사용가능하다.

아래는 super 를 사용하여 부모 클래스의 메서드를 그대로 사용하고 내용을 추가함으로써 메서드를 재정의하여 오버라이딩하는 예제이다.

나머지는 위의 코드와 동일하다.
public class Bus extends Car{
    public void attach10(int carNumber){
        super.attach10(carNumber);
        System.out.println("Bus");
    }
}

실행해보면 입력한 차 번호에 10이 붙어서 나오고 다음줄에 Bus 가 출력되는 것을 볼 수 있다.

0개의 댓글