何时不调用 super() 方法时重写?
当我创建自己的Android自定义类时,我是本机类。然后,当我想重写基方法时,我总是调用方法,就像我总是在 、等中所做的那样。extend
super()
onCreate
onStop
我认为就是这样,因为从一开始,Android团队就建议我们始终调用每个方法覆盖。super
但是,在许多书中,我可以看到比我更有经验的开发人员经常省略呼叫,我真的怀疑他们这样做是因为缺乏知识。例如,看看这个基本的 SAX 解析器类,其中 省略了 和 :super
super
startElement
characters
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
}
}
}
如果您尝试通过 Eclipse 或任何其他 IDE 创建任何覆盖方法,将始终作为自动化过程的一部分创建。super
这只是一个简单的例子。书中充满了类似的代码。
他们如何知道您何时必须呼叫以及何时可以省略呼叫?super
PS.不要绑定到此特定示例。这只是从许多例子中随机挑选的一个例子。
(这听起来像是一个初学者的问题,但我真的很困惑。