@Override, a metody abstrakcyjne

Odpowiedz Nowy wątek
2012-05-15 11:49
0

Czy stosowanie adnotacji przy nadpisywaniu metody abstrakcyjnej ma sens? Z tego co udało mi się dowiedzieć o @Override nie wpływa ona na kod wynikowy, a jedynie pomaga uniknąć pewnych błędów w fazie pisania programu (przykładowo literówka przy nadpisywaniu metody) czyli stosowanie jej w przypadku definiowania metody oznaczonej klauzulą abstract staje się zbędne bo java nawet przy popełnieniu literówki poinformuje mnie, że metoda abstrakcyjna nie jest zdefiniowana ?
Czy @Override posiada jeszcze jakieś inne zastosowania? Czy są na przykład jakieś sytuacje gdzie jest ona niezbędna?

pozdrawiam.


"..."
"odp"
"qtMaster"

Pozostało 580 znaków

2012-05-15 11:53

Nigdy nie jest niezbędne. Normalne edytory (Eclipse na przykład) potrafią automatycznie dopisywać @Override tam gdzie to potrzebne. Pozwala ci to uniknąć błędów, a jednocześnie od razu widać w kodzie że metoda jest nadpisaną metodą z nadklasy a nie nową metodą.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Mój Eclipse (Helios 3.6.2) nie dopisuje żadnej adnotacji. Na lewym marginesie, obok sygnatury metody, wyświetlany jest mały trójkąt skierowany w górę. Po najechaniu kursorem pojawia się dymek a w nim tekst "overrride "("implements" )+pełna nazwa klasy(interfejsu) i metody. - bogdans 2012-05-16 09:02
@bogdans Wejdź sobie w "window->preferences->java->editor->save actions" i tam możesz ustawić sobie m.in. autoformatowanie kodu przy zapisie, a także dopisywanie adnotacji właśnie :) - Shalom 2012-05-16 10:16
@shalom, ja się nie skarżę, mi ta adnotacja jest niepotrzebna, wspomniany trójkącik (a raczej jego brak) zupełnie mi wystarcza. - bogdans 2012-05-16 10:44

Pozostało 580 znaków

2012-05-16 10:24
0

Czasem wydaje się, że przydałaby się jeszcze adnotacja @Overload dla metod przeciążonych bo to też bywa istotnym źródłem błędów. Szczególnie w przypadku przesłaniania metod przeciążonych.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?

Pozostało 580 znaków

2014-11-22 09:36
billy the kid
0

W niektórych językach overload i override funkcjonują jako modifiers a nie annotations i brak problemów ze zgadywaniem co autor chciał.

Pozostało 580 znaków

2014-11-22 11:08
_mućka
0

@bogdans - Tobie może jest zbędna, Twoim kolegom możliwe że nie. Jak na dobrego obywatela przystało, w projektach, w których nie jesteś jedynym programistą (a nawet jak teraz jesteś to za tydzień możesz już nie być), higieniczne jest stosowanie zaleceń, a używanie @Override takowym jest. Ja osobiscie komentuje w review każdy brakujący @Override jeśli zauważę, i albo sam dodaję, albo daje rejecta jeśli błąd jest nagminny, żeby autor commita wiedział, jak powinno być ;d

Zgoda. Czy mućka == _mućka? - bogdans 2014-11-22 11:14

Pozostało 580 znaków

2014-11-22 11:47
_mućka
0

Nie jestem pewien, jak próbuję użyć nicka 'mućka' to dostaję info, że takie konto już istnieje. Możliwe że kiedyś je zarejestrowałem, ale nigdy się nie loguję; możliwe jednak, że to ktoś inny. A dlaczego, co za różnica?

Pozostało 580 znaków

2014-11-22 11:50
the real mućka
0

Chyba jednak _mućka != mućka, bo nie działa przypominanie hasła na żaden email który mam. Jeden pewnik - ja się nigdy nie loguję.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0