- value類與handle類不能同時被繼承,除非value類是HandleCompatible。繼承的子類是handle類。
- 若子類繼承兩個value類,其中一個是HandleCompatible的,子類不是HandleCompatible的。子類是value類。
MATLAB繼承同名方法
在子類中除了同名方法reload外,其他地方不能調用父類的同名方法reload
基類
classdef MySuper
properties
X
Y
end
methods
function S=saveobj(obj)
S.PointX=obj.X;
S.PointY=obj.Y;
end
function obj=reload(obj,S)
obj.X=S.PointX;
obj.Y=S.PointY;
end
end
methods (Static)
function obj=loadobj(S)
obj=MySuper;
obj=reload(obj,S);
end
end
end
子類
classdef MySub<MySuper
properties
Z
end
methods
function S=saveobj(obj)
S=saveobj@MySuper(obj);
S.PointZ=obj.Z;
end
end
methods
function obj=reload(obj,S)
obj=reload@MySuper(obj,S);
obj.Z=S.PointZ;
end
end
methods (Static)
function obj=loadobj(S)
obj=MySub;
% obj=reload@MySuper(obj,S); **報錯**
obj=reload(obj,S);
end
end
end