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

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

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

  • Значение свойства 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

Похожие темы