Я немного устала от своих концепций ООП в целом и все еще изучаю особенности реализации ООП MATLAB.У меня есть подкласс, который наследуется от суперкласса.Я следовал синтаксическим правилам MATLAB, чтобы вызывать конструктор суперкласса следующим образом:
obj = obj@MySuperClass(SuperClassArguments);
Я проверил другие подобные вопросы, но мне кажется, что-то не хватает, так как мой синтаксис кажется похожим на примеры в других подобных вопросах, а такжечто показано в документации MATLAB, кроме того факта, что мне нужно использовать свойство подкласса при вызове конструктора суперкласса.
содержимое файла subClass.m:
classdef subClass < superClass
properties (Access = public)
arg1 = 1
end
methods
function obj = subClass(arg1)
obj = obj@superClass(arg1);
end
end
end
superClass.mсодержимое файла:
classdef superClass
properties (Access = protected)
arg2
end
methods
function obj = superClass(local_arg1)
switch local_arg1
case 1
obj = functionA();
otherwise
obj = functionB();
end
end
end
end
function obj = functionA(obj)
obj.arg2 = 1;
end
function obj = functionB(obj)
obj.arg2 = 2;
end
Я создаю объект подкласса в командной строке MATLAB следующим образом:
>> a = subClass(1);
И получаю ошибку:
При построении экземпляра класса 'subClass' конструктор должен сохранять класс возвращаемого объекта.
Есть ли какие-либо указатели на то, что я ошибаюсь?