Matlab无法调用超类方法

时间:2014-01-28 17:13:34

标签: matlab oop matlab-class

我是Matlab的新手,并且在调用超类方法方面遇到了一些问题。

我有这段代码:

超类测试1:

classdef test1 < handle
    methods
        function obj = test1()
        end
        function test2(obj)
            disp(1);
        end
    end

end

子类测试:

classdef test < test1 & handle
    properties
        foo = 1;
    end
    methods
        function obj = test()
            obj = obj@test1();
        end
        function a = bar(obj)
            superclasses(obj)
            test2@test1(obj)
        end
    end
end

继承正常;超类函数将test1显示为test的超类。但是,当我调用test2@test1(obj)时,它会返回错误:

  

&#34; @&#34;在方法中,调用同名的超类方法   说方法@超类。 &#34; @&#34;的左操作数必须是方法   名。

test 2方法显然存在于超类test1中,所以我不确定到底出了什么问题。

1 个答案:

答案 0 :(得分:1)

只有当超类和子类中的方法名称相同且调用位于具有相同名称的子类方法中时,才能使用@语法。否则你可以直接调用方法,因为没有混淆。因此,而不是test2@test1(obj)只使用test2(obj)。

您也不需要在子类中再次将句柄指定为超类。