Gibt es einen Unterschied zwischen einer Elternklasse und einer Superklasse? Ist eine Superklasse einfach eine Elternklasse, die nicht von anderen Klassen erbt?Unterschied zwischen einer Elternklasse und Superklasse
Antwort
Dies ist mehr ein Terminologieunterschied. Die Idee von Eltern- und Kindklassen oder Super- und Unterklassen. Es scheint abhängig von der Programmiersprache Erfahrung und Anwendungsdomäne, welche Sie verwenden.
super() ist, wie der Eltern- oder Superklassenkonstruktor für eine Java-Klasse in einer abgeleiteten Klasse aufgerufen wird.
Und es gab eine Reihe von Abwandlungen in der Terminologie seit Jahren, so dass ältere und erfahrene Programmierer, die früh in objektorientiert waren, die Dinge ein wenig anders nennen.
Das Eltern- und Kindfenster wird auch für Fenstersysteme verwendet, in denen ein Fenster in einem anderen Fenster enthalten ist, so dass die Terminologie ebenfalls wiederverwendet werden kann.
Ich würde sagen, es ist das gleiche.
Vielleicht möchten Sie zwischen einer direkten und indirekten Eltern- oder Superklasse unterscheiden, aber ich denke, die beiden Begriffe sind auch nicht klar genug. Wenn du das also ausdrücken willst, sei besser explizit.
Auch viele Programmiersprachen haben das Schlüsselwort "super", das sich auf die (direkte) Elternklasse bezieht. Aber selbst dort, wenn Sie eine "Super" -Methode aufrufen und die direkte Mutter sie nicht implementiert, sprudelt sie auch auf.
Sie sind im Wesentlichen gleich. Je nach Sprache ändert sich die Terminologie. Parent kann den unmittelbaren Elternteil bedeuten, während Super-Klasse eine der Vorfahrenklassen bedeuten kann. Darüber hinaus gibt es in Java die super() -Methode, die den Konstruktor des Parents aufruft.
Sie sind verschiedene Begriffe, um das gleiche OOP-Konzept zu behandeln: Vererbung. Wenn Klasse ChildClass
erstreckt ParentClass
kann man sagen:
ChildClass
Elternklasse ist ParentParentClass
ist die Super-Klasse von Child
Vererbungsebenen haben nichts zu tun gibt, ist es egal, wenn eine Super-Klasse selbst eine andere Klasse erweitert.
In Ruby Sprache haben wir beide die Begriffe, die verschiedene Dinge bedeuten.
ParentClass -> ChildClass
-> dies ist für Namensräume
verwendet und
SuperClass -> SubClass
-> dies für die Vererbung verwendet wird
Beispiele unten:
ParentClass -> ChildClass
:
class A
def self.f1
puts "A -> #{self.name}.f1 called"
end
# B is childclass of A
class B
def self.f2
puts "B -> #{self.name}.f2 called"
end
end
end
# C is subclass of A
class C < A
def self.f3
puts "C -> #{self.name}.f3 called"
B.f2
end
end
den Ausgang Siehe unten:
C.f1
A -> C.f1 genannt
C.f3
C -> C.f3 genannt
B -> A :: B.f2 genannt
- 1. Unterschied zwischen Superklasse :: Methode oder this-> Methode
- 2. Unterschied zwischen einer Objekteigenschaft und einer Typeigenschaft
- 3. Unterschied zwischen einer "Coroutine" und einem "Thread"?
- 4. Unterschied zwischen einem Treiber und einer Bibliothek?
- 5. Unterschied zwischen einem Subsystem und einer Komponente
- 6. Unterschied zwischen einer Klasse und einem Modul
- 7. Überladen einer Methode einer Superklasse
- 8. Unterschied zwischen Vorzeichen & und *?
- 9. VBA: Unterschied zwischen & und +
- 10. Unterschied zwischen "**/* /" und "** /"?
- 11. Unterschied zwischen $ # und $ {# @}
- 12. Unterschied zwischen = und: =
- 13. Unterschied zwischen '#', '%' und '$'
- 14. MySQL: Unterschied zwischen ', `,' und '
- 15. C++ Unterschied zwischen '//' und '///'
- 16. Unterschied zwischen String.Empty und ""
- 17. Unterschied zwischen `% in%` und `==`
- 18. Unterschied zwischen numpy.logical_and und &
- 19. Unterschied zwischen. und #
- 20. Unterschied zwischen // und http: //
- 21. Unterschied zwischen dynamic und System.Object
- 22. Unterschied zwischen Monitor und Schloss?
- 23. Unterschied zwischen Ereignishandlern und Rückrufen
- 24. Unterschied zwischen Listen und Arrays
- 25. Unterschied zwischen Container und Wrapper
- 26. Unterschied zwischen row_array und result_array
- 27. Unterschied zwischen JSONObject und JSONArray
- 28. Unterschied zwischen FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET und FLAG_ACTIVITY_CLEAR_TOP
- 29. Unterschied zwischen Request.Cookies und Response.Cookies
- 30. Unterschied zwischen add_dependency und add_runtime_dependency?