Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Super
|
Super {( param {; param2 ; ... ; paramN} )} -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
param | Mixed |
![]() |
Parâmetros a passar ao constructor pai | |||||
Resultado | Objeto |
![]() |
Pai do objeto | |||||
O comando Super faz chamadas à superclasse.
Super foi introduzido para servir dois propósitos:
// dentro do constructor myClass
C_TEXT($1;$2)
Super($1) //chama o constructor de superclass com um parâmetro texto
This.param:=$2 // usa o segundo parâmetro
Super.doSomething(42) //chama a função "façaAlgo" declarada em superclasses
Este exemplo ilustra o uso de Super em um class constructor. O comando é chamado para evitar duplicar as partes do constructor que são comuns entre as classes Rectangle e Square.
//Classe: 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)
// Chama o construtor da classe pai com as dimensões
// fornecidas para a largura e latura do Rectangle
Super($1;$1)
// Em classes derivadas, Super deve ser chamado antes
// de usar 'This'
This.name:="Square"
Este exemplo ilustra o uso de Super no método class member.
Crie um a classe Rectangle com uma função:
//Class: Rectangle
Function nbSides
C_TEXT($0)
$0:="I have 4 sides"
Também crie uma classe Square com uma função chamando uma função superclasse:
//Class: Square
Class extends Rectangle
Function description
C_TEXT($0)
$0:=Super.nbSides()+" which are all equal"
Agora pode escrever em um método projeto:
C_OBJECT($square)
C_TEXT($message)
$square:=cs.Square.new()
$message:=$square.description() //I have 4 sides which are all equal
Produto: 4D
Tema: Linguagem
Número
1706
Criado por: 4D v18 R3
Manual de linguagem 4D ( 4D v20 R7)