Я думаю, что это очень простой вопрос, но я застрял в этом. В MATLAB у меня есть суперкласс super
и подкласс sub
.Изменить свойство суперкласса из подкласса
Теперь я пытаюсь изменить свойство color
суперкласса моего подкласса. Таким образом, я сделал следующее
classdef super < handle
properties
color = 'red';
end
methods
function obj = super()
% ...
end
function obj = change_color(obj)
obj.color = 'blue';
end
end
end
и это
classdef sub < super
properties
name = 'car';
end
methods
function obj = sub()
obj = [email protected]();
obj.change_color();
end
end
end
Далее я сделал
super_obj = super();
sub_obj = sub();
Но результат, что я не изменить свойства суперкласса, но вместо унаследованное свойство в подклассе изменяется. Я получаю:
super_obj.color = 'red';
sub_obj.color = 'blue';
, но я хочу
super_obj.color = 'blue';
Спасибо заранее.
Вы можете изменить свойство 'color' * текущего экземпляра *. Если вы создадите два экземпляра 'sub', они будут иметь независимые цвета. – Suever
Но разве нет возможности изменить свойство суперкласса из унаследованного подкласса? – Lemonbonbon
№ Наследование распространяется только в одном направлении. Что делать, если у вас было два подкласса, которые хотели изменить цвет на два разных значения? – Suever