Kiedy tworzę własną niestandardową klasę Androida, I extend
to jej rodzima klasa. Wtedy, kiedy chcę zastąpić metodę podstawową, zawsze zadzwonić super()
metody, tak jak ja zawsze w onCreate
, onStop
itpKiedy NIE wywoływać metody super() podczas przesłonięcia?
A myślałem, że to jest to, co od samego początku Androida zespół poradził nam zawsze zadzwoń pod numer super
w przypadku każdego nadpisania metody.
Ale w wielu książek widzę, że deweloperzy, bardziej doświadczeni ode mnie, często należy pominąć powołanie super
i wątpię, robią to jako brak wiedzy. Na przykład, spójrz na tej podstawowej klasy SAX parsera gdzie super
pominięto w startElement
, characters
i endElement
:
public class SAXParser extends DefaultHandler{
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if(qName.equalsIgnoreCase("XXY")) {
//do something
}
}
public void characters(char[] ch, int start, int length) throws SAXException {
//do something
}
public void endElement(String uri, String localName, String qName) throws SAXException {
if(qName.equalsIgnoreCase("XXY")) {
//do something
}else() {
//do something
}
}
}
Jeśli próbujesz stworzyć dowolną metodę obejścia poprzez Eclipse lub innego IDE, super
zawsze będzie tworzona jako część zautomatyzowanego procesu.
To był tylko prosty przykład. Książki są pełne podobnego kodu.
Jak oni wiedzieć, kiedy należy zadzwonić super
i kiedy można pominąć to dzwoni?
PS. Nie wiąż do tego konkretnego przykładu. Był to tylko przykład losowo wybrany z wielu przykładów.
(To może brzmieć jak początkujący pytanie, ale jestem naprawdę mylić.)
"Dokument API endElement's mówi:" Domyślnie nic nie rób, autorzy aplikacji mogą zastąpić tę metodę ... "oznacza, że możesz bezpiecznie zadzwonić super, ponieważ nie" nic ", ale nie musisz i naprawdę możesz to zmienić. Często możesz stwierdzić, czy musisz/możesz/nie powinieneś tego robić, jeśli czytasz dokument dotyczący tej metody. – zapl
Mały przykład: Używam onBackPressed() na ekranie powitalnym i NIE Wzywam super, więc nie wychodzi z plusku, po prostu wyłącza przycisk. –
@sandalone Przepraszamy za pytanie, ale czy masz jakieś doświadczenie w zakresie obsługi podatku VAT w rozliczeniach w ramach aplikacji i które kraje są wykonywane automatycznie przez Google i które muszę ręcznie zgłosić/zapłacić podatek VAT? zobacz http://stackoverflow.com/questions/36506835/android-in-app-billing-vat-tax –