Programing

@Override는 무엇을 의미합니까?

lottogame 2020. 10. 29. 07:43
반응형

@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

반응형