2012-10-24 9 views

Antwort

2

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.

2

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.

0

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.

3

Sie sind verschiedene Begriffe, um das gleiche OOP-Konzept zu behandeln: Vererbung. Wenn Klasse ChildClass erstreckt ParentClass kann man sagen:

  • ChildClass Elternklasse ist Parent
  • ParentClass ist die Super-Klasse von Child

Vererbungsebenen haben nichts zu tun gibt, ist es egal, wenn eine Super-Klasse selbst eine andere Klasse erweitert.

0

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:

  1. C.f1

A -> C.f1 genannt

  1. C.f3

C -> C.f3 genannt

B -> A :: B.f2 genannt