>  기사  >  Java  >  Java에서 @Override는 무엇을 합니까?

Java에서 @Override는 무엇을 합니까?

王林
王林앞으로
2020-06-15 16:17:235148검색

Java에서 @Override는 무엇을 합니까?

먼저 @Override의 일반 기능에 대해 이야기해 보겠습니다.

1. 상위 클래스의 기존 메서드를 올바르게 재정의했는지 직접 확인해 보세요.

2. 복사 방법입니다.

예:

예를 들어 이제 기본 클래스가 있습니다.

Java에서 @Override는 무엇을 합니까?

(비디오 튜토리얼 권장 사항: java 비디오 튜토리얼)

이제 Apple 하위 클래스를 작성하고 이 기본 클래스를 상속하며 기본 클래스를 재정의합니다. 클래스 show_name() 메소드

Java에서 @Override는 무엇을 합니까?

실행 결과 Apple:2라는 단어가 인쇄됩니다.

실제로 상위 클래스의 메서드를 수동으로 재정의할 때 메서드의 매개 변수를 잘못 기억하기 쉽습니다. 이때 @Override를 추가하지 않으면 편집기에서 다음과 같은 메시지를 표시하지 않습니다. 이 태그를 추가하지 않고 매개변수를 float 유형으로 변경하겠습니다.

Java에서 @Override는 무엇을 합니까?

이때 사실 우리의 의도대로 메서드를 성공적으로 재정의하지 못했기 때문에 숨겨진 버그가 탄생했습니다. 반대로 재정의를 추가한 효과는

Java에서 @Override는 무엇을 합니까?

IDE에서 제공한 것입니다. 재정의 방법이 실패했음을 설명하는 오류 메시지입니다.

메서드 재정의를 준비할 때 결과가 나오는 경우가 많지만 대신 메서드를 오버로드합니다.

또 다른 예: 이제 Fruit 클래스에 비공개 메서드를 추가하고 Apple

 @Override
    private void grow(){
    }

에서 이를 재정의하려고 합니다. 결과적으로 컴파일러는 오류 메시지를 표시합니다. 이는 매우 낮은 수준의 오류이지만 때로는 그럴 수도 있습니다. : 이는 개인 메소드를 재정의하려고 시도하는 것이지만 Override 태그를 제거하면 컴파일러는 오류를 보고하지 않고 실행될 수 있습니다.

사실 Apple에서 성장이라고 부르는 것은 Apple 자체의 비공개 방법일 뿐입니다. 완전히 새로운 접근 방식입니다.

복제란 무엇입니까?라는 질문이 생깁니다.

객체 지향에서는 인터페이스, 공유 메서드, 상속된 메서드만 재정의할 수 있습니다. 프라이빗 메서드는 재정의할 수 없습니다. 그런데 다시 생각해 보니 재정의할 수 없는 것이 아니라 개념이 없습니다. 개인 메소드를 전혀 무시합니다!

이것은 객체지향 디자인의 원래 의도입니다. 프라이빗 메서드 자체는 클래스 내부에 캡슐화되어 다른 사람이 변경하거나 외부에서 참조할 수 없습니다.

추천 튜토리얼: java 입문 프로그램

위 내용은 Java에서 @Override는 무엇을 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제