Powinieneś zawsze opisywać metody za pomocą @Override
, jeśli jest dostępna.
W JDK 5 oznacza to nadrzędne metody nadklas, w JDK 6 i 7 oznacza nadrzędne metody nadklas i wdrażanie metod interfejsów. Powodem, jak wspomniano wcześniej, jest to, że pozwala kompilatorowi wychwycić błędy tam, gdzie uważasz, że nadpisujesz (lub wdrażasz) metodę, ale w rzeczywistości definiują nową metodę (inny podpis).
Przykład to przykładowy przypadek, ale ten sam argument można wprowadzić dla implementacji interfejsu.
Wyobrażam sobie, że nie jest konieczne umieszczanie adnotacji na temat metod implementacji interfejsów, ponieważ JDK 5 oznaczył to jako błąd kompilacji. Jeśli JDK 6 uczyni tę adnotację obowiązkową, złamie kompatybilność wsteczną.
Nie jestem użytkownikiem Eclipse, ale w innych IDE (IntelliJ) adnotacja @Override
jest dodawana tylko podczas implementowania metod interfejsu, jeśli projekt jest ustawiony jako projekt JDK 6+. Wyobrażam sobie, że Eclipse jest podobny.
Jednak wolałbym zobaczyć inną adnotację dla tego użycia, być może adnotację @Implements
.
Wow to pytanie może być krótsze, ale jest to pytanie, którego potrzebowałem. Dzięki –
Nie mogę znaleźć zamiennika dla artykułu @Override (Oracle przeniosło ostatnio stare blogi Sun). Czy wiesz, jak to znaleźć? –
Powinniśmy mieć teraz adnotację @Implement (s) (2015). To wszystko wyjaśni! – Alex