오버라이딩 (Overriding)

이상해씨·2023년 5월 4일
0

JAVA

목록 보기
30/40

오버라이딩

  • 부모가 가진 메소드와 같은 모양의 메소드를 자식이 가짐
  • 부모가 가진 기능이 필요하지만, 그대로 사용하지 않고 기능 추가 등 재정의하여 사용.
    //run 메소드를 가지고 있는  Car클래스 
    public class Car{
        public void run(){
            System.out.println("Car의 run메소드");
        }
    }

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

    public class TaxiExam{
        public static void main(String args[]){
            Taxi taxi = new Taxi();
            taxi.run();  //Car의 run메소드가 실행된다. 
        }
    }
  • Overriding
  • 메소드 오버라이드 시, 항상 자식클래스 안에서 선언된 메소드가 호출됨
    //run 메소드를 가지고 있는  Car클래스 
    public class Car{
        public void run(){
            System.out.println("Car의 run메소드");
        }
    }

    //Car 를 상속받는 Taxi 클래스 
    public class Bus extends Car{
		public void run(){
        	System.out.println("Taxi의 run메소드");
        }
    }

    public class TaxiExam{
        public static void main(String args[]){
            Taxi taxi = new Taxi();
            taxi.run();  //Taxi의 run메소드가 실행된다. 
        }
    }
  • 오버라이딩해도 부모 메소드가 없어지는 것은 아님. super 사용시, 부모 메소드 호출
    public class Taxi extends Car{
        public void run(){
            **super.run();**  // 부모의  run()메소드를 호출 
            System.out.println("Taxi의 run메소드");
        }
    }

참고

profile
공부에는 끝이 없다

0개의 댓글