2

私は Matlab を初めて使用し、スーパークラス メソッドの呼び出しでいくつかの問題に直面しています。

私はこのコードを持っています:

スーパークラス test1:

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)、エラーが返されます。

"@" メソッド内で、同じ名前のスーパークラス メソッドは、method@superclass と言って呼び出されます。「@」の左オペランドはメソッド名でなければなりません。

test2 メソッドは明らかにスーパークラス内に存在するため、何が問題なのtest1か正確にはわかりません。

4

1 に答える 1