P
Passion
Unregistered / Unconfirmed
GUEST, unregistred user!
一个接口中声明了某属性,实现这个接口的子类中能否不通过强制转换成这个接口而访问这个属性?访问方法都是没问题的。
比如:
IA = interface
function GetAName: string;
procedure SetAName(const value: string);
property AName: string read GetAName write SetAName
end;
TA = class(TInterfacedObject, IA)
published
function GetAName: string;
procedure SetAName(const value: string);
property AName
// 这句编译提示基类找不到 AName
end;
这样我创建一个TA的实例A后,居然不能通过A.AName来访问这个属性,
只能调用其GetAName和SetAName方法。
非得Support(a, IA, b) 后用b这个接口或者as成这个接口后才能调用 AName 属性?
请教达人这是怎么回事,有无法子在实现这个接口的子类中不通过强制转换成这个接口而访问这个属性?
比如:
IA = interface
function GetAName: string;
procedure SetAName(const value: string);
property AName: string read GetAName write SetAName
end;
TA = class(TInterfacedObject, IA)
published
function GetAName: string;
procedure SetAName(const value: string);
property AName
// 这句编译提示基类找不到 AName
end;
这样我创建一个TA的实例A后,居然不能通过A.AName来访问这个属性,
只能调用其GetAName和SetAName方法。
非得Support(a, IA, b) 后用b这个接口或者as成这个接口后才能调用 AName 属性?
请教达人这是怎么回事,有无法子在实现这个接口的子类中不通过强制转换成这个接口而访问这个属性?