Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Super
|
Super {( param {; param2 ; ... ; paramN} )} -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
param | Mixed |
![]() |
Parámetro(s)a pasar al constructor padre | |||||
Resultado | Objeto |
![]() |
Padre del objeto | |||||
El comando Super realiza llamadas a la superclase.
Super se ha introducido por dos propósitos diferentes:
// en el constructor myClass
C_TEXT($1;$2)
Super($1) //llama al constructor de la superclase con un parámetro texto
This.param:=$2 // utiliza el segundo parámetro
Super.doSomething(42) //llama a la función "doSomething" declarada en superclases
Este ejemplo ilustra el uso de Super en un constructor de clase. Se llama al comando para evitar duplicar las partes del constructor que son comunes entre las clases Rectangle y Square.
//Clase: 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
//Clase: Square
Class extends Rectangle
Class constructor
C_LONGINT($1)
// Llama la clase constructor padre con las longitudes
// suministrado para el ancho y la alto del Rectangle
Super($1;$1)
// En las clases derivadas, se debe llamar a Super antes que
// pueda utilizar 'This'
This.name:="Square"
Este ejemplo ilustra el uso de Super en un método miembro de clase.
Creó la clase Rectangle con una función:
//Clase: Rectangle
Function nbSides
C_TEXT($0)
$0:="I have 4 sides"
También creó la clase Square con una función que llama a la función de superclass:
//Clase: Square
Clase extiende Rectangle
Function description
C_TEXT($0)
$0:=Super.nbSides()+" which are all equal"
Entonces puedes escribir en un método proyecto:
C_OBJECT($square)
C_TEXT($message)
$square:=cs.Square.new()
$message:=$square.description() //tengo 4 lados los cuales son todos iguales
Producto: 4D
Tema: Lenguaje
Número
1706
Creado por: 4D v18 R3
Manual de lenguaje 4D ( 4D v20 R7)