Wie lautet die Syntax zum vollständigen Überschreiben eines übergeordneten Konstruktors?Powershell-Überschreibung des übergeordneten Klassenkonstruktors
Im folgenden Code erstellen ich eine Animals-Klasse und eine Dogs-Klasse, die von der Animals-Klasse erbt. Die Dogs-Klasse hat ihren eigenen Konstruktor, aber anstatt den Animals-Konstruktor zu ersetzen, werden sowohl der Animals-Konstruktor als auch der Dogs-Konstruktor ausgeführt, wenn die Klasse instanziiert wird.
class Animals {
[System.Collections.ArrayList]$animalList = @()
Animals() {
$this.animalList.add("moose")
$this.animalList.add("elephant")
$this.animalList.add("buffalo")
}
showAnimals() {
foreach($animal in $this.animalList) {
Write-Host $animal
}
}
}
class Dogs : Animals {
Dogs() {
$this.animalList.add("Doberman")
$this.animalList.add("Golden Retriever")
}
}
$someAnimals = New-Object Animals
$someDogs = New-Object Dogs
Write-Host "The animals list:"
$someAnimals.showAnimals()
Write-Host ""
Write-Host "The dogs list:"
$someDogs.showAnimals()
Daraus ergibt sich die folgende:
The animals list:
moose
elephant
buffalo
The dogs list:
moose
elephant
buffalo
Doberman
Golden Retriever