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;


    执行结果:在创建子类的实例时,也执行了父类的构造函数。