Ich habe bemerkt, dass Klassen, die Unterklasse Android-Klassen benötigen keinen Konstruktor und Aufruf des Konstruktors der Oberklasse. Warum das? Ich dachte, dass alle Klassen außer Pojos einen Konstruktor brauchten?Warum benötigen Unterklassen von Android-Klassen keinen Aufruf von Super-Konstruktor?
0
A
Antwort
3
Da Sie den Konstruktor nicht überschreiben. Es gibt keine Anforderung *, dass der Konstruktor der Superklasse überschrieben werden muss.
Ich dachte, dass alle Klassen außer pojos einen Konstruktor benötigten?
Sie haben einen Konstruktor. Es ist von ihrer Elternklasse geerbt. Sie werden den Konstruktor nicht einfach REIMPLEMENTING.
* Wie von @Christian bemerkt, müssten Sie einen Konstruktor implementieren, wenn der Konstruktor der Elternklasse Argumente verwendet. Im Fall von Android-Klassen (die meisten), sie nicht.
1
Nun ... die Klassen, über die Sie sprechen, haben einen Standardkonstruktor (einen ohne Parameter). Wenn sie Parameter (wie die View
Klasse) hatten, müssen Sie mindestens einen Konstruktor überschreiben.
Verwandte Themen
- 1. Druckanweisungen im Superkonstruktor nicht drucken
- 2. Wie konstruiert man Unterklassen von Immutable.Record?
- 3. Warum lässt Java generische Unterklassen von Throwable nicht zu?
- 4. Kann keinen Aufruf von C++ zu Java mit JNI
- 5. List.Sort von Eigenschaftsname - einschließlich Unterklassen
- 6. Warum node.js Python benötigen
- 7. Warum funktioniert ein Aufruf von PageMethods nicht?
- 8. Databinding Unterklassen
- 9. Verweis auf neues Objekt behalten, das in Superkonstruktor übergeben wird
- 10. Fehler beim Registrieren benutzerdefinierte Unterklassen von UITableViewCell
- 11. der Veröffentlichung einer Sammlung von Unterklassen
- 12. Fragen zum Ziehen von Objektinformationen aus Unterklassen
- 13. Beispiel für Unterklassen von String.Template in Python?
- 14. Erstellen von Zuordnungen zwischen Unterklassen (STI)
- 15. Ajax-Aufruf gibt keinen Erfolg zurück
- 16. Warum benötigen die berechneten Eigenschaften von Polymer explizite Eigenschaftsargumente?
- 17. Warum benötigen die Klassen von Code First Navigationseigenschaften?
- 18. Warum benötigen AWS CognitoSync ListDatasets IdentityId?
- 19. Warum hat Node keinen getElementByTagName()?
- 20. Warum g ++ benötigen noch -latomic
- 21. Aufruf von MASM32-Prozedur von .c
- 22. Warum verursacht das Vergleichen von Typen in MYSQL keinen Fehler?
- 23. Warum kann ich keinen std :: stack von std :: ifstreams erstellen?
- 24. Warum findet die Locate-Methode von ClientDataSet keinen vorhandenen Datensatz?
- 25. Warum kann eine Liste von Schnittstellen keinen Implementierungstyp verwenden?
- 26. Warum kann ich keinen Vektor von Referenzen erstellen?
- 27. Warum kann ich keinen FileChannel von einem FileWriter erhalten?
- 28. Warum gibt es keinen Kompilierungsfehler?
- 29. Aufruf von didHighlightItemAtIndexPath ohne Aufruf von didSelectItemAtIndexPath für UICollectionView
- 30. Warum könnte _CrtSetBreakAlloc keinen Haltepunkt verursachen?
Ah. Ich denke, das war eine grundlegende Eigenschaft von Java, die ich falsch verstanden habe. Ich dachte, selbst wenn du den Konstruktor nicht neu implementierst, musst du es irgendwie nennen. –
* Es gibt keine Anforderung, dass Sie den Konstruktor der Superklasse überschreiben müssen. * Wenn der Superkonstruktor über Parameter verfügt, dann yes: Es muss zwingend überschrieben werden. – Cristian
@Christian: Ja du hast Recht. – Falmarri