我猜你会继续有类似的问题(我想我看到了另一个类似的问题,前几天,可能已经从你的,这表明或许你已经发现这一点)。
我会建议你不要子类serial。取而代之的是,创建一个类,包装serial,类似如下: classdef MyClass
properties (Hidden, Access = private)
myserialobject
end
properties
mySubClassProp1
mySubClassProp2
%...
end
properties (Dependent)
mySerialProp1
mySerialProp2
%...
end
methods
function obj = MyClass(port)
obj.myserialobject = serial(port);
% Set other subclass props
end
end
methods
function val = get.mySerialProp1(obj)
val = obj.myserialobject.mySerialProp1;
end
function obj = set.mySerialProp1(obj, val)
obj.myserialobject.mySerialProp1 = val;
end
%... pass through get and set for each serial prop you need to access
function obj = mySerialMethod1(obj, varargin)
mySerialMethod1(obj.myserialobject, varargin{:});
end
%... pass through method for each serial method you need to access
end
end
基本上你有一个类,它有一个serial对象的属性,有一堆属性和作为自己的方法好。当你需要访问serial对象的属性,使从属属性与get和set方法,只是通过值或从底层serial对象。同样,如果您需要访问serial对象的方法,创建类的方法,只是通过底层serial对象调用。
该模式使用组合物而非继承。这通常(并非总是)好的做法,但在这种情况下,它还可以为您节省超载的所有问题subsref。