[Java] 오버라이딩(Overriding) 정의, 사용방법

Hee·2024년 4월 1일

Java 복습

목록 보기
26/46
post-thumbnail

오버라이딩

오버라이딩 정의
부모 클래스가 가지고 있는 메소드와 똑같은 모양의 메소드를 자식이 가지고 있는 것이다.

즉 오버라이딩이란 메소드를 재정의하는 것이다.



자식클래스가 부모클래스의 메소드 사용
Car 클래스를 상속받은 Bus 클래스는 부모클래스가 가지고 있는 run() 메소드를 사용할 수 있다.

// run 메소드를 가지고 있는 Car 클래스
public class Car{
	public void run(){
    	System.out.println("Car의 run 메소드");
    }
}

// Car를 상속받는 Bus 클래스
public class Bus extends Car{

}

public class BusExam{
	public static void main(String args[]){
    	Bus bus = new Bus();
        bus.run();		// Car의 run메소드가 실행된다.
    }
}

자식 클래스에 부모가 가지고 있는 메소드 재정의: 오버라이딩

public class Bus extends Car{
	@overriding
	public void run(){
    	System.out.println("Bus의 run 메소드");
    }
}

public class BusExam{
	public static void main(String[] args){
    	Bus bus = new Bus();
        bus.run();		// Bus의 run메소드가 실행된다.
    }
}

메소드를 오버라이딩하면, 항상 자식클래스에서 정의된 메소드가 호출된다.



오버라이딩과 동시에 부모의 메소드도 같이 호출하는 방법

  • super 키워드를 이용하면, 부모의 메소드를 호출할 수 있다.
public class Bus extends Car{
    public void run(){
        super.run();		// 부모의 run() 메소드 호출
        System.out.println("Bus의 run 메소드");
    }
}

0개의 댓글