Syntax: TYPE kindKlasse EXTENDS basisKlasse
Typ: Anweisung
Kategorie: Klassen
EXTENDS wird in Verbindung mit Vererbung verwendet. Dabei gibt das Schlüsselwort an, dass die eigene Klasse die Records und Methoden einer bereits bestehenden erbt, also erhält, ohne dass man diese zusätzlich angeben müsste.
Beispiel:
Type Haustier Extends Object
As Integer beine = 4
As Integer schwanz = 1
End Type
Type Hund Extends Haustier
As Integer anhaenglich = 1
Declare Sub gibLaut
End Type
Sub Hund.gibLaut
Print "Wuff!"
End Sub
Type Chihuahua Extends Hund
Declare Sub gibLaut
End Type
Sub Chihuahua.gibLaut
Print "Klaeffklaeff!"
End Sub
Type Bernhardiner Extends Hund
As Integer gutmuetig = 1
End Type
'#####################################################
Dim benno As Bernhardiner, husky As Chihuahua
Print "Benno hat " & benno.beine & " Beine und " & benno.schwanz & " Schwanz."
Print "Benno ist gutmuetig (Wert " & benno.gutmuetig & ")."
benno.gibLaut
Print
Print "Husky hat " & husky.beine & " Beine und " & husky.schwanz & " Schwanz."
husky.gibLaut
Print
Sleep
Ausgabe:
Benno hat 4 Beine und 1 Schwanz.
Benno ist gutmuetig (Wert 1).
Wuff!
Husky hat 4 Beine und 1 Schwanz.
Klaeffklaeff!
Erläuterung: Sowohl Benno als auch Husky erben die Records 'beine' und 'schwanz' vom Elternobjekt. 'gutmuetig' steht nur Benno zur Verfügung. Dafür besitzt Husky eine eigene 'gibLaut'-Methode, während Benno auf die Methode des Elternobjekts zugreift.
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.24
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht EXTENDS nicht zur Verfügung und kann nur über __EXTENDS aufgerufen werden.
Siehe auch:
TYPE (UDT), BASE, OBJECT, IS (Vererbung), Objektorientierung