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

Java에서 재정의할 때 메서드 서명을 변경할 수 있습니까?

<시간/>

아니요, 수퍼 클래스의 메소드를 재정의하는 동안 두 메소드가 동일한 이름, 동일한 매개변수 및 동일한 반환 유형을 갖는지 확인해야 합니다. 그렇지 않으면 둘 다 다른 메소드로 처리됩니다.

간단히 말해서 서명을 변경하면 슈퍼 클래스의 메서드를 실행하려고 하면 슈퍼 클래스의 메서드를 재정의할 수 없습니다.

이유 - 시그니처를 변경하면 두 메서드 모두 다른 메서드로 간주되며 하위 클래스 개체에서 슈퍼 클래스 메서드의 복사본을 사용할 수 있으므로 실행됩니다.

class Super {
   void sample(int a, int b) {
      System.out.println("Method of the Super class");
   }
}
public class MethodOverriding extends Super {
   void sample(int a, float b) {
      System.out.println("Method of the Sub class");
   }
   public static void main(String args[]) {
      MethodOverriding obj = new MethodOverriding();
      obj.sample(20, 20);
   }
}

출력

Method of the Super class