Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 메소드 재정의


재정의는 하위 클래스 유형에 특정한 동작을 정의하는 기능입니다. 이는 하위 클래스가 요구 사항에 따라 상위 클래스 메서드를 구현할 수 있음을 의미합니다.

개체 지향 용어로 재정의는 기존 메서드의 기능을 재정의하는 것을 의미합니다.

예시

예를 살펴보겠습니다.

class Animal {
   public void move() {
      System.out.println("Animals can move");
   }
}
class Dog extends Animal {
   public void move() {
      System.out.println("Dogs can walk and run");
   }
}
public class TestDog {
   public static void main(String args[]) {
      Animal a = new Animal(); // Animal reference and object
      Animal b = new Dog();  // Animal reference but Dog object
      a.move();  // runs the method in Animal class
      b.move(); // runs the method in Dog class
   }
}

출력

이렇게 하면 다음과 같은 결과가 생성됩니다. -

Animals can move
Dogs can walk and run

위의 예에서 b는 Animal 유형이지만 Dog 클래스에서 move 메소드를 실행하는 것을 볼 수 있습니다. 그 이유는 다음과 같습니다. 컴파일 시간에 참조 유형을 확인합니다. 그러나 런타임에서 JVM은 개체 유형을 파악하고 해당 특정 개체에 속한 메서드를 실행합니다.
따라서 위의 예에서는 Animal 클래스에 move 메서드가 있으므로 프로그램이 제대로 컴파일됩니다. 그런 다음 런타임에 해당 개체에 특정한 메서드를 실행합니다.