| 
                    
 Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
                 
                
    
    
                 | 
                
					
                    
                         
    4D v20.6
 
Super 
                                
                                
        
 | 
                ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Super {( param {; param2 ; ... ; paramN} )} -> Résultat | ||||||||
| Paramètre | Type | Description | ||||||
| param | Varié | 
             
         | 
        Paramètre(s) à passer au constructeur parent | |||||
| Résultat | Objet | 
             
         | 
        Parent de l'objet | |||||
La commande Super appelle la "superclass" (classe parente).
Super a été introduite pour deux raisons :
  // dans le constructeur myClass
 C_TEXTE($1;$2)
 Super($1) //appelle le constructeur de la superclass avec un paramètre texte
 This.param:=$2 // utilise le second paramètre Super.doSomething(42) //appelle la fonction "doSomething" déclarée dans les superclassCet exemple illustre l'utilisation de Super dans un constructeur de classe. La commande est appelée pour éviter la duplication des parties du constructeur qui sont communes aux classes Rectangle et Square.
  //Classe : Rectangle
 
 Class constructor
 C_ENTIER LONG($1;$2)
 This.name:="Rectangle"
 This.height:=$1
 This.width:=$2
 
 Function sayName
 ALERTE("Bonjour, Je m'appelle "+This.name+".")
 
 Function getArea
 C_ENTIER LONG($0)
 $0:=This.height*This.width
  //Classe : Square
 
 Class extends Rectangle
 
 Class constructor
 C_ENTIER LONG($1)
 
  // Il appelle le class constructor parent avec les longueurs
  // fourni pour la largeur et la hauteur du Rectangle
 Super($1;$1)
 
  // Dans les classes dérivées, Super doit être appelée avant de 
  // pouvoir utiiser 'This'
 This.name:="Square"
Cet exemple illustre l'utilisation de Super dans une méthode membre de classe.
Vous avez créé la classe Rectangle avec une fonction :
  //Classe : Rectangle
 
 Function nbSides
 C_TEXTE($0)
 $0:="Je possède 4 côtés"Vous avez également créé la classe Square avec une fonction qui appelle la fonction superclass :
  //Classe : Square
 
 Class prolonge Rectangle
 
 Function description
 C_TEXTE($0)
 $0:=Super.nbSides()+" qui sont tous égaux"Vous pouvez ensuite saisir, dans une méthode projet :
 C_OBJET($square)
 C_TEXTE($message)
 $square:=cs.Square.new()
 $message:=$square.description() //Je possède 4 côtés qui sont tous égaux
	Produit :  4D
	Thème :  Langage
	Numéro :  
        1706
        
        
        
	Nom intl. :  Super
	Créé :  4D v18 R3
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	4D - Langage ( 4D v20)
	
	
	4D - Langage ( 4D v20.1)
	
	
	
	4D - Langage ( 4D v20.2)
	
	4D - Langage ( 4D v20.3)
	
	4D - Langage ( 4D v20.4)
	
	
	4D - Langage ( 4D v20.5)
	4D - Langage ( 4D v20.6)
	
	
	
Ajouter un commentaire