Kendi Android özel sınıfımı oluşturduğumda, extendonun yerel sınıfıyım. Ben baz yöntemi geçersiz istediğinizde Sonra, hep diyoruz super()hep yapmak gibi, yöntem onCreate, onStopvb
Ve en başından beri Android ekibi bize superher yöntemi geçersiz kılma çağrısında bulunmamızı tavsiye ettiği için bunun bu olduğunu düşündüm .
Ancak birçok kitapta, benden daha deneyimli geliştiricilerin çoğu zaman aramayı ihmal superettiklerini ve bunu bilgi eksikliği olarak yaptıklarından gerçekten şüpheliyim. Örneğin, bu temel bakmak SAX çözümleyici sınıfında superyer atlanırsa startElement, charactersve 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 veya başka bir IDE aracılığıyla herhangi bir geçersiz kılma yöntemi oluşturmaya çalışırsanız, superher zaman otomatik işlemin bir parçası olarak oluşturulur.
Bu sadece basit bir örnekti. Kitaplar benzer kodlarla doludur .
Ne zaman aramanız gerektiğini superve aramayı ne zaman atlayabileceğinizi nasıl biliyorlar ?
PS. Bu özel örneğe bağlanmayın. Pek çok örnekten rastgele seçilmiş bir örnekti.
(Bu başlangıç sorusu gibi gelebilir ama gerçekten kafam karıştı.)

endElementAPI dokümanı "Varsayılan olarak, hiçbir şey yapmayın. Uygulama yazarları bu yöntemi geçersiz kılabilir ...", yani "hiçbir şey" yapmadığı için süper'i güvenle çağırabileceğiniz anlamına gelir, ancak buna gerek yoktur ve gerçekten geçersiz kılabilirsiniz. Bu yöntemin belgesini okursanız, yapıp yapamayacağınızı / yapmamanız gerektiğini sık sık anlayabilirsiniz.