Roel Notebook

[Java] 메소드 오버라이딩(method overriding)

by Roel Downey
728x90
반응형

메소드 오버라이딩(method overriding)

메소드 오버라이딩이란? 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 재 정의하는것

자식 클래스에서는 부모클래스의 private을 제외한 모든 메소드를 상속 받는다. 

 

 

메소드 오버라이딩 예제 

 

Bus 클래스는 부모클래스인 Car 클래스를 상속 받고 있다.

 

    // Car클래스 (부모 클래스)
    public class Car{
        public void run(){
            System.out.println("Car의 run메소드");
        }
    }

    // Bus 클래스 (자식 클래스)
    public class Bus extends Car{

    }

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

 

Bus클래스는 부모클래스인 Car 클래스의 모양이 같은 메소드를 선언

 

    public class Bus extends Car{
        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메소드가 실행된다. 
        }
    }

 

  • BusExam을 실행하면 Bus클래스의 run메소드가 출력된다.

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

  • 오버라이딩 한다고 해서 부모의 메소드가 사라지는 것은 아니다.

    • super 키워드를 이용하면, 부모의 메소드를 호출 할 수 있다.

    public class Bus extends Car{
        public void run(){
            super.run();  // 부모의  run()메소드를 호출
        }
    }

 

 

 

 

 

 

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기