![]() |
Re: OOP: Vererbung von Konstruktoren
Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Mittlerweile sind die Constructors nicht mehr so wichtig. Habe soeben im eigenen Source mal gesucht. Die tauchen nur bei meinen eigenen Komponenten auf. Ist auch kein Wunder, denn das Create ist fast dasselbe.
ich modifiziere mal Dein Beispiel:
Delphi-Quellcode:
Soll nun der Wert von x und y mit 2 anfangen und z soll unberührt bleiben, so muß bereits in TBase.Create x und y auf 2 gesetzt werden. 8) So ungefähr läuft das. :zwinker:
TSecond = class(TBase)
private x,y : integer; public constructor Create; end; Constructor TBase.Create; begin x := 1; y := 1; z := 999; end; constructor TSecond.Create; begin inherited; // x und y erben die Werte von Vorfahrklasse, die durch inherited // aufgerufen wird, sind also jetzt jeweils 1 z ist jetzt 999 // x und y sollen 1 bleiben, z aber 1000 : z := 1000; // Entresult : x, y = 1, z = 1000 !!!! end; |
Re: OOP: Vererbung von Konstruktoren
Zitat:
Du kennst doch die typischen Fragen in der DP: "Gibt's 'ne Komponente hierfür?", "Gibt's 'ne Komponente dafür?", ... :roll: Da Delphi darauf abzielt VB'ler zu bekehren ist diese Implementierung gar nicht so unverständlich. ;) VB ist halt alles andere als OOP. :P Nachtrag: @Hansa, das ist jetzt nicht dein Ernst, oder? |
Re: OOP: Vererbung von Konstruktoren
Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
Ich denke, im Kopf eines Borland-Entwicklers geht etwas anderes vor. |
Re: OOP: Vererbung von Konstruktoren
@RG: was soll mein ernst sein ? Die OOP-Grundlagen zu erläutern ? :shock:
Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} type Base = class(TObject) private fX :Integer; fY :Integer; constructor Create(X, Y :Integer); public property X :Integer read fX; property Y :Integer read fY; end; Descendant = class(Base) private fZ :Integer; public property Z :Integer read fZ; constructor Create(X, Y, Z :Integer); end; { TBase } constructor Base.Create(X, Y :Integer); begin inherited Create(); fX := X; fY := Y; end; { TSecond } constructor Descendant.Create(X, Y, Z :Integer); begin inherited Create(X, Y); fZ := Z; // hier hätte er meckern sollen inc(fX); end; var x :string; begin with Descendant.Create(1, 2, 3) do try Writeln(X, ', ', Y, ', ', Z); finally Free(); end; Writeln('Zum Beenden bitte den Any-Key suchen... :P'); Read(x); end.
Code:
2, 2, 3
Zum Beenden bitte den Any-Key suchen... :P Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
|
Re: OOP: Vererbung von Konstruktoren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz