【发布时间】:2022-01-20 16:50:29
【问题描述】:
我有一个超类定义了几个方法,并且在派生的子类中,(a)我想保留这些方法,因为它们仍然非常有用,但我想给它们另一个名字,因为(b)对于方法与超类中的名称相同,我想赋予它们不同的功能。
classdef sup
methods
function [] = method1(obj,val)
fprintf('sup val=%g\n',val);
end
end
end
classdef sub < sup
methods
function [] = method1(obj,val)
fprintf('sub val=%g\n',val);
end
function [] = method2(obj,val)
method1@sup(obj,val);
end
end
end
matlab 不允许这样做。 但这对我来说看起来很自然,为超类和子类调用具有相同名称的方法会导致不同的结果,同时仍然希望超类中的方法在我需要的情况下仍然存在。是否有任何解决方法或有更好的 OOP 概念来避免这种情况?
【问题讨论】: