Измените унаследованные свойства

Модификация свойства суперкласса

Существует два отдельных условия, при которых можно переопределить свойства суперкласса:

  • Значением атрибута свойства Abstract суперкласса является true

  • Значениями атрибутов свойства SetAccess и GetAccess суперкласса является private

Если суперкласс задает свойство как краткий обзор, подкласс должен реализовать конкретную версию этого свойства, или подкласс также абстрактен. Суперклассы задают абстрактные свойства создать сопоставимый интерфейс среди подклассов.

Если суперкласс задает свойство с частным доступом, то только суперкласс может получить доступ к этому свойству. Подкласс может реализовать различное свойство с тем же именем.

Частное локальное свойство более приоритетно в методе

Когда суперкласс и подкласс задают свойство с тем же именем, методы, которые относятся к этому свойству, получают доступ к свойству класса, задающего метод.

Например, если свойство подкласса имеет то же имя как частная собственность суперкласса, и метод суперкласса ссылается на имя свойства, MATLAB® получает доступ к свойству, заданному суперклассом.

Рассмотрите следующие классы, Super и Sub:

classdef Super
   properties (Access = private)
      Prop = 2
   end
   methods
      function p = superMethod(obj)
         p = obj.Prop;
      end
   end
end
classdef Sub < Super
   properties
      Prop = 1
   end
end

Если вы создаете экземпляр класса Sub и используете его, чтобы вызвать метод суперкласса, MATLAB получает доступ к частной собственности суперкласса:

subObj = Sub
subObj = 

  Sub with properties:

    Prop: 1
subObj.superMethod
ans =

     2

Похожие темы