Ist es Break-oop-Prinzipien (z. B. Liskov-Prinzip), wenn die Konstruktorsignatur für die abgeleitete Klasse nicht der Basisklasse entspricht?Unterschiedliche Konstruktorsignatur für abgeleitete Klasse
2
A
Antwort
1
Nein, nicht, weil Liskov-Prinzip über "Kontravarianz von Methodenargumenten und Rückgabetypen im Subtyp" spricht. Wenn Sie so etwas tun:
foo(bar:Base){
//do stuff
}
diese Methode erwartet eine Instanz von Base
Klasse, keinen Konstruktor so die Kontra von Methoden auf diesen Fall nicht anwendbar ist.
Es wäre dieses Prinzip brechen, wenn Sie so etwas wie dies tun, weil ein Base
Beispiel nicht durch ein Extended
ersetzt werden könnte:
class Base{
foo():string{
return "";
}
bar(arg:string){}
}
class Extended extends Base{
foo():number{
return 1;
}
bar(arg:boolean){}
}
Aber dies ist nicht erlaubt durch die Typoskript Compiler.
Verwandte Themen
- 1. Mit Erklärung (Abgeleitete Klasse)
- 2. Abgeleitete Klasse Konstruktoraufrufe
- 3. Konstruktorsignatur an Factory-Methode weitergeben
- 4. Distinc abgeleitete Klasse C++
- 5. Vorlage Argument nicht für innere Klasse abgeleitete
- 6. GetExecutingAssembly() für abgeleitete Klasse in verschiedenen Assembly
- 7. Erstellen der Konvertierung für abgeleitete IDbCommand-Klasse
- 8. Assign abgeleitete Klasse Basisklasse
- 9. Abgeleitete Klasse C++
- 10. Abgeleitete Modelle einschließen Verwandte Klasse
- 11. Get abgeleitete Klasse mit Basisklassenfunktion
- 12. Swig Typumwandlung in abgeleitete Klasse?
- 13. Python Klasse Dekorateur abgeleitete Klasse verursacht Rekursion
- 14. Abgeleitete Klasse fehlendes Argument: ‚Selbst‘
- 15. EF Eager Abrufen abgeleitete Klasse
- 16. eine abgeleitete Klasse Zwingen mit
- 17. Luabind: Abgeleitete Klasse als Parameter
- 18. Gegossene abgeleitete Klasse zur Basis
- 19. Mitglied Funktionszeiger auf abgeleitete Klasse
- 20. JQuery unterschiedliche Inhalte für die gleiche Klasse
- 21. Wie 'getConstructor' wo Konstruktorsignatur enthält Java-Array
- 22. Verwenden Sie unterschiedliche Federtestkontextkonfiguration für unterschiedliche Testmethoden
- 23. Wie schreibe ich die Bewegungszuweisungsfunktion für diese abgeleitete Klasse?
- 24. Drools Score-Berechnung mit geschachtelten Klassen fehlschlägt für abgeleitete Klasse
- 25. Statischer Initialisierer, der für eine abgeleitete Klasse nicht aufgerufen wird
- 26. XmlInclude für abgeleitete Klasse ohne Zugriff auf die Basisklasse?
- 27. Wie abgeleitete Klasse mit C# Generics zurückgegeben
- 28. Ist StreamingBody eine abgeleitete Klasse von urlib3?
- 29. Unterschiedliche Ansicht der Klasse anzeigen
- 30. Java; Casting-Basisklasse in abgeleitete Klasse