먼저 @Override의 일반 기능에 대해 이야기해 보겠습니다.
1. 상위 클래스의 기존 메서드를 올바르게 재정의했는지 직접 확인해 보세요.
2. 복사 방법입니다.
예:
예를 들어 이제 기본 클래스가 있습니다.
(비디오 튜토리얼 권장 사항: java 비디오 튜토리얼)
이제 Apple 하위 클래스를 작성하고 이 기본 클래스를 상속하며 기본 클래스를 재정의합니다. 클래스 show_name() 메소드
실행 결과 Apple:2라는 단어가 인쇄됩니다.
실제로 상위 클래스의 메서드를 수동으로 재정의할 때 메서드의 매개 변수를 잘못 기억하기 쉽습니다. 이때 @Override를 추가하지 않으면 편집기에서 다음과 같은 메시지를 표시하지 않습니다. 이 태그를 추가하지 않고 매개변수를 float 유형으로 변경하겠습니다.
이때 사실 우리의 의도대로 메서드를 성공적으로 재정의하지 못했기 때문에 숨겨진 버그가 탄생했습니다. 반대로 재정의를 추가한 효과는
IDE에서 제공한 것입니다. 재정의 방법이 실패했음을 설명하는 오류 메시지입니다.
메서드 재정의를 준비할 때 결과가 나오는 경우가 많지만 대신 메서드를 오버로드합니다.
또 다른 예: 이제 Fruit 클래스에 비공개 메서드를 추가하고 Apple
@Override private void grow(){ }
에서 이를 재정의하려고 합니다. 결과적으로 컴파일러는 오류 메시지를 표시합니다. 이는 매우 낮은 수준의 오류이지만 때로는 그럴 수도 있습니다. : 이는 개인 메소드를 재정의하려고 시도하는 것이지만 Override 태그를 제거하면 컴파일러는 오류를 보고하지 않고 실행될 수 있습니다.
사실 Apple에서 성장이라고 부르는 것은 Apple 자체의 비공개 방법일 뿐입니다. 완전히 새로운 접근 방식입니다.
복제란 무엇입니까?라는 질문이 생깁니다.
객체 지향에서는 인터페이스, 공유 메서드, 상속된 메서드만 재정의할 수 있습니다. 프라이빗 메서드는 재정의할 수 없습니다. 그런데 다시 생각해 보니 재정의할 수 없는 것이 아니라 개념이 없습니다. 개인 메소드를 전혀 무시합니다!
이것은 객체지향 디자인의 원래 의도입니다. 프라이빗 메서드 자체는 클래스 내부에 캡슐화되어 다른 사람이 변경하거나 외부에서 참조할 수 없습니다.
추천 튜토리얼: java 입문 프로그램
위 내용은 Java에서 @Override는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!