Наследование классов

Top  Previous  Next

AnyDynamics поддерживает механизм наследования классов. Наследование классов позволяет строить новые классы на базе уже существующих классов.

 

Если класс C2 объявляется прямым потомком класса C1 (рис.1), то класс C2 наследует все элементы класса C1: атрибуты, методы, внутренние классы, карту поведения или систему уравнений и структурную схему. Применительно к отношению C1 ← C2 класс C1 будем далее называть базовым классом, или суперклассом, а C2 — производным классом, или подклассом.

Отношение наследования транзитивно: если класс C3 является производным от класса C2, то и класс C3 является производным от класса C1 и наследует все его элементы.

Внутреннией класс может быть производным только от другого локального класса того же глобального класса.

Унаследованные элементы описания суперкласса помечаются в окне производного класса значком _img5.

 

Все изменения, вносимые в класс C1 (рис.1) и в любой из его предков, будут автоматически отражаться на классе C2 и его потомках.

 

Наследование

      Рис.1

 

В AnyDynamics допустимо только одиночное наследование: любой производный класс может иметь только один базовый.

 

Целью наследования является расширение и/или модификация описания базового класса.

Это можно осуществить с помощью добавления новых элементов описания и переопределения унаследованных элементов описания.

Никакие унаследованные элементы не могут быть удалены.

 

Все активные динамические объекты являются потомками предопределенного класса «object».

 

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

Другим важным случаем является преобразование непрерывного базового класса в гибридный производный. В этом случае все непрерывные внутренние классы производного класса автоматически

наследуют систему уравнений базового класса.

Примером может служит гибридный класс «ИдеальныйДиод», производный от непрерывного класса «Двухполюсник» (демо-пример "Electricity").