[英]Not enough input arguments Inheritance Matlab
我正在研究类及其多重继承,我遇到了一个问题,经过这么多帮助我无法解决,我有一个类A
,它是基类,而类B
是它的派生类。 我想要的是,带有输入参数的类A
的构造方法是在派生类B
调用,应该在类B
使用其输入参数来调用,但是不幸的是,我有错误输入参数不足。 因为B
类需要参数,但我想像上面那样在B
类中提供参数作为输入。
在我的情况下,建议或合适的解决方案是什么?
我的代码:(基本类A)
classdef A %base class
properties
arg1
end
properties
out
end
methods
function obj = A(arg1)
obj.arg1=arg1;
obj.out=[1 2 3;];
end
end
end
衍生的B类:
classdef B < A %derived Class
properties (Access=protected)
arg2
obj1
end
methods
function obj1 = B(arg2)
obj1.arg2=arg2;
A(obj1);
end
end
end
Bm :
classdef B < A %derived Class properties (Access=protected) arg2 end methods function obj = B(arg1,arg2) obj = obj@A(arg1); obj.arg2 = arg2; end end end
从文档中 :
默认情况下,MATLAB调用不带参数的超类构造函数。 如果要使用特定参数调用超类构造函数,请从子类构造函数中显式调用超类构造函数。 对超类构造函数的调用必须先于对该对象的任何其他引用。
在尝试新代码之前,请不要忘记清除两个类的所有实例,并clear Am Bm
只是为了很好。
用法 :
>> myA = A(1)
myA =
A with properties:
arg1: 1
out: [1 2 3]
>> myB = B(1,2)
myB =
B with properties:
arg1: 1
out: [1 2 3]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.