4D v19Super | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 
                
    
    
                 | 
                
			
                    
                         
    4D v19
 
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 superclassesDieses 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 v19)
	
	
	4D Programmiersprache ( 4D v19.1)
Fehler melden