独自のAndroidカスタムクラスを作成すると、extendそのネイティブクラスになります。次に、基本メソッドをオーバーライドする場合は、、などでいつも行うように、常にメソッドsuper()を呼び出します。onCreateonStop
superそして、Androidチームが最初からすべてのメソッドのオーバーライドを常に呼び出すようにアドバイスしていたので、これがそれだと思いました。
しかし、多くの本で、私より経験豊富な開発者が電話superを省略していることがよくあり、知識の欠如としてそれを行っているとは本当に思えません。たとえば、この基本的なSAXパーサークラスを見てください。ここでは、、および:superで省略されています。startElementcharactersendElement
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。この特定の例にバインドしないでください。これは、多くの例からランダムに選択された単なる例です。
(これは初心者の質問のように聞こえるかもしれませんが、私は本当に混乱しています。)
