Wenn ich meine eigene benutzerdefinierte Android-Klasse erstelle, ist dies extend
die native Klasse. Dann , wenn ich die Basismethode außer Kraft setzen wollen, habe ich immer anrufen super()
Methode, so wie ich es immer tue in onCreate
, onStop
usw.
Und ich dachte, das ist es, da das Android-Team uns von Anfang an geraten hat, immer super
jede Methodenüberschreibung aufzurufen .
Aber in vielen Büchern kann ich sehen, dass Entwickler, die erfahrener sind als ich, das Anrufen oft unterlassen, super
und ich bezweifle wirklich, dass sie dies aus Mangel an Wissen tun. Schauen Sie sich zum Beispiel diese grundlegende SAX- Parser-Klasse an, super
in der weggelassen wird startElement
, characters
und 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
}
}
}
Wenn Sie versuchen, eine Überschreibungsmethode über Eclipse oder eine andere IDE zu erstellen, super
wird diese immer als Teil eines automatisierten Prozesses erstellt.
Dies war nur ein einfaches Beispiel. Bücher sind voll von ähnlichem Code .
Woher wissen sie, wann Sie anrufen müssen super
und wann Sie das Anrufen unterlassen können?
PS. Binden Sie nicht an dieses spezielle Beispiel. Es war nur ein Beispiel, das zufällig aus vielen Beispielen ausgewählt wurde.
(Das klingt vielleicht nach einer Anfängerfrage, aber ich bin wirklich verwirrt.)
endElement
Das API-Dokument lautet "Standardmäßig nichts tun. Anwendungsschreiber können diese Methode überschreiben ...", was bedeutet, dass Sie Super sicher aufrufen können, weil es "nichts" tut, aber Sie müssen es nicht und Sie können es wirklich überschreiben. Sie können oft feststellen, ob Sie dies tun müssen / können / sollten, wenn Sie das Dokument für diese Methode lesen.