When I make my own Android custom class, I extend
its native class. Then when I want to override the base method, I always call super()
method, just like I always do in onCreate
, onStop
, etc.
And I thought this is it, as from the very beginning Android team advised us to always call super
on every method override.
But, in many books I can see that developers, more experienced than myself, often omit calling super
and I really doubt they do it as a lack of knowledge. For example, look at this basic SAX parser class where super
is omitted in startElement
, characters
and 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
}
}
}
If you try to create any override method via Eclipse or any other IDE, super
will always be created as a part of automated process.
This was just a simple example. Books are full of similar code.
How do they know when you must call super
and when you can omit it calling?
PS. Do not bind to this specific example. It was just an example randomly picked from many examples.
(This may sound like a beginner question, but I am really confused.)