Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Super
|
Super {( param {; param2 ; ... ; paramN} )} -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
param | Mixed |
![]() |
Parameter zum Übergeben an den übergeordneten Konstruktor | |||||
Funktionsergebnis | Objekt |
![]() |
Superklasse des Objekts | |||||
Der Befehl Super macht Aufrufe zur Superklasse.
Super wurde für zwei unterschiedliche Zwecke eingeführt:
// inside myClass constructor
C_TEXT($1;$2)
Super($1) //calls superclass constructor with a text param
This.param:=$2 // use second param
Super.doSomething(42) //calls "doSomething" function declared in superclasses
Dieses Beispiel erläutert die Verwendung von Super im Konstruktur einer Klasse. Der Befehl wird aufgerufen, um Duplizieren von Konstruktorteilen zu vermeiden, die für die Klassen Rectangle und Square gleich sind.
//Class: Rectangle
Class constructor
C_LONGINT($1;$2)
This.name:="Rectangle"
This.height:=$1
This.width:=$2
Function sayName
ALERT("Hi, I am a "+This.name+".")
Function getArea
C_LONGINT($0)
$0:=This.height*This.width
//Class: Square
Class extends Rectangle
Class constructor
C_LONGINT($1)
// It calls the parent class's constructor with lengths
// provided for the Rectangle's width and height
Super($1;$1)
// In derived classes, Super must be called before you
// can use 'This'
This.name:="Square"
Dieses Beispiel erläutert die Verwendung von Super in einer Class Member Methode.
Sie haben die Klasse Rectangle mit einer Funktion angelegt:
//Class: Rectangle
Function nbSides
C_TEXT($0)
$0:="I have 4 sides"
Sie haben auch die Klasse Square mit einer Funktion angelegt, welche die Superclass Funktion aufruft:
//Class: Square
Class extends Rectangle
Function description
C_TEXT($0)
$0:=Super.nbSides()+" which are all equal"
Dann können Sie in einer Projektmethode schreiben:
C_OBJECT($square)
C_TEXT($message)
$square:=cs.Square.new()
$message:=$square.description() //I have 4 sides which are all equal
Produkt: 4D
Thema: Programmiersprache
Nummer:
1706
Erstellt: 4D v18 R3
4D Programmiersprache ( 4D v20 R7)