exponenta event banner

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

Изменение свойства суперкласса

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

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

Связанные темы