FAQ
>
金融建模
>
建模问题
>
语法相关
Q:子类中如何在构造函数中增加新成员变量的初始化
复制链接
A:在继承父类后,子类中又新增了一些成员属性,不想在每次实例中都要初始化,希望在构造时就初始化完成。
本FAQ主要实现该场景的需求,供用户进行使用参考。
子类中调用父类方法的方式有两种:
一种是通过Class(类).func()的方式调用指定类的方法。
第二种是通过关键字Inherited func()的方式调用父类的同名方法。
具体实现如下:
Function test();//实例
Begin
obj:=new B();
return array(obj.sCYA,obj.sCYB);
//返回父类中定义的成员变量,与子类中定义的成员变量的初始值。
End;
Type B=class(A) //子类
sCYB;
function create();override; //构造函数
begin
//两种方法二选一
//Class(A).create(); 方式一:调用指定类的方法
Inherited create(); //方式二:调用父类方法
sCYB:=100;
end
end;
Type A=class //父类
sCYA;
function create(); //构造函数
begin
sCYA:=200;
end
end;
执行结果:在创建子类的实例时,也执行了父类的构造函数。