@Override는 무엇을 의미합니까?
public class NaiveAlien extends Alien
{
@Override
public void harvest(){}
}
친구의 코드를 이해하려고했는데 코드에서 @Override 구문을 얻지 못했습니다. 그것은 무엇을하고 코딩에 왜 필요한가? 감사.
컴파일러가 부모 클래스 (또는 Java 6의 인터페이스)의 메서드를 재정의하고 있음을 알리는 힌트입니다.
컴파일러가 재정의 할 함수가 없음을 감지하면 경고 (또는 오류)가 발생합니다.
이는 오타 나 API 변경을 빠르게 식별하는 데 매우 유용합니다. 부모 클래스의 메서드를 재정의하려고 harvest()
하지만 철자를 입력하면 harvset()
프로그램이 자동으로 기본 클래스를 호출하고. @Override
이 없으면 경고가 표시되지 않습니다.
마찬가지로 라이브러리를 사용 중이고 라이브러리 버전 2 harvest()
에서 정수 매개 변수를 사용하도록 수정 된 경우 더 이상이를 재정의하지 않습니다. 다시 말하지만, @Override
빨리 말할 것입니다.
이 기능을 주석이라고합니다. @Override
주석을 사용하여 컴파일러에게 "컴파일러, 부모 클래스에서 하베스트가 수행하는 작업을 변경하고 있습니다"라는 것을 알리는 구문입니다. 그러면 컴파일러는 즉시 "야, 이름을 잘못 지정했습니다"라고 말할 수 있습니다. 컴파일러는 이름을 올바르게 지정할 때까지 컴파일되지 않습니다.
따라서이 @Override
주석이 없으면 컴파일러는 오류가 발생하지 않으며 새로운 메서드 선언으로 간주됩니다. 이 시점에서 오류를 인식하기 어려울 것입니다.
@Override
기본 클래스 메서드를 재정의하고 있음을 의미합니다. java6에서는 인터페이스에서 메소드를 구현하고 있음을 의미하기도합니다. 메서드를 재정의하고 있다고 생각하지만 잘못 입력 한 경우 오타로부터 보호합니다.
참고 URL : https://stackoverflow.com/questions/4341432/what-does-override-mean
'Programing' 카테고리의 다른 글
Rails에서 로컬 파일의 내용을 변수로 읽어들입니다. (0) | 2020.10.29 |
---|---|
종속성별로 종속 된 개체를 정렬하는 방법 (0) | 2020.10.29 |
C #에서 배열 리터럴을 반환하는 방법 (0) | 2020.10.29 |
POST로 전송 된 모든 변수를 가져 오시겠습니까? (0) | 2020.10.28 |
port selfupdate :“macPorts 소스 : 명령 실행 실패” (0) | 2020.10.28 |