我有一个我正在使用的子类和超类看起来类似于:
classdef ClassSub < ClassSuper
properties
prop2
end
methods
function self = ClassSub(Param1, Param2)
self = ClassSuper(Param1);
self.prop2 = Param2;
end
end
end
classdef ClassSuper
properties
prop1
end
methods
function self = ClassSuper(Param1)
self.prop1 = Param1;
end
end
end
当我去创建一个新的子类时:test = ClassSub(1,2);
我收到以下错误:
没有足够的输入参数。
当我单步执行代码时,我注意到在调用子类的构造函数之前,调用supers,使用零输入参数 然后调用子类构造函数,然后最后再次召唤超级。什么应该是子类的构造调用的正常顺序?如果是这样,有没有办法先强制子类的构造函数,谁然后调用超级?
答案 0 :(得分:4)
call superclass constructor的正确语法是:
classdef ClassSub < ClassSuper
%# ...
methods
function self = ClassSub(Param1, Param2)
self = self@ClassSuper(Param1);
self.prop2 = Param2;
end
end
end