Здрасте! ЗНАЮЩИЕ, помогите пожалуйста начинающему. Не могу разобраться с наследованием классов. Допустим есть три класса:
Код:
unit UnitBase;
interface
type
BaseClass3=class
end;
BaseClass2=class
end;
BaseClass1=class
end;
implementation
end.
Код:
unit Unit3;
interface
uses
UnitBase;
type
Class3 = class (BAseClass3)
Owner:BaseClass1;
S:String;
constructor Create(aOwner:BaseClass1);
end;
implementation
constructor Class3.Create(aOwner: BaseClass1);
begin
Owner:=aOwner;
S:='Class3';
end;
end.
Код:
unit Unit2;
interface
uses
UnitBase;
type
Class2 = class (BAseClass2)
Owner:BaseClass1;
S:String;
constructor Create(aOwner:BaseClass1);
end;
implementation
constructor Class2.Create(aOwner: BaseClass1);
begin
Owner:=aOwner;
S:='Class2';
end;
end.
Код:
unit Unit1;
interface
uses
UnitBAse,Unit2,Unit3;
type
Class1=Class(BaseClass1)
Value2:Class2;
Value3:Class3;
S:String;
constructor Create;
end;
implementation
constructor Class1.Create;
begin
Value2:=Class2.Create(Self);
Value3:=Class3.Create(Self);
S:='Class1';
end;
end.
Проблема такая, как реализовать следующий код в модуле Unit2:
Код:
implementation
...
var
C:Class2;
S:String;
begin
S:=C.Owner.Value3.S;
пробовал объявлять BaseClass2 и BaseClass3 абстрактными но так и не получается
А если в двух словах , то : как потомку получить полный доступ к методам и переменным предка если они описаны в разных модулях программы и предок ссылается на модуль потомка?????