ABAP子类构造函数报错:未传入强制参数MAXSEATS问题排查
问题分析与解决方案:ABAP子类构造函数参数缺失错误
这个错误的原因非常直接:你在子类Z30082019_BMWCAR的构造函数中调用父类构造函数时,没有传入父类要求的强制参数。
父类ZMP_ACAR的构造函数明确定义了两个必填的导入参数maxSeats和maxKidSeats,当子类继承父类后,在子类构造函数执行过程中,必须显式地将这两个参数传递给父类的构造函数——父类需要这些参数来完成自身的初始化工作。你当前的代码里只是直接给子类的属性赋值,但完全忽略了父类构造函数的参数要求,这就导致了系统抛出"No value was passed to the mandatory parameter 'MAXSEATS'"的错误。
修正后的子类构造函数代码:
CLASS Z30082019_BMWCAR IMPLEMENTATION. METHOD CONSTRUCTOR. " 关键:将子类构造函数收到的参数传递给父类构造函数 super->constructor( maxSeats = maxSeats maxKidSeats = maxKidSeats ). " 补充:父类构造函数已经初始化了公共属性maxSeats和maxKidSeats,子类无需重复赋值 " me->maxSeats = maxSeats. " me->maxKidSeats = maxKidSeats. ENDMETHOD. METHOD goToTrip. ... ENDMETHOD. ENDCLASS.
额外提一句:因为父类的maxSeats和maxKidSeats是公共属性,父类构造函数已经完成了它们的初始化操作,子类里不需要再重复赋值,除非你有特殊的重写逻辑需求。
内容的提问来源于stack exchange,提问作者user9254958
相关产品推荐
相关产品推荐

