![]()  | 
![]() ![]() ![]() ![]()  | 
   
 | 
Override, Vitual, Dynamic - методыDelphi , Компоненты и Классы , Процедуры и функцииOverride, Vitual, Dynamic - методыАвтор: Mark Если метод в классе предка объявлен как виртуальный (virtual) или динамический (dynamic), вам необходимо перекрыть его во всех классах-наследниках. Если вы объявляете наследованный метод виртуальным или динамическим, вы начинаете строить его новое виртуальное/динамическое дерево наследования. Допустим, у нас есть следующая иерархия: A (родитель) - B - C - D. Если вы объявляете метод как виртуальный (или динамический) в A, перекрываете в B, создаете виртуальным в C и перекрываете в D, вот что получается: 
фактический  класс, используемый   класс, использующий
класс        для доступа к методу  метод
-----------+---------------------+--------------------
     D                D                     D
     D                C                     D
     D                B                     B
     D                A                     B
     C                C                     C
     C                B                     B
     C                A                     B
  
     B                B                     B
     B                A                     B
     
Вывод: работа виртуального/динамического наследования прекращается в момент создания одноименного виртуального/динамического метода наследниками класса. Методы override, virtual и dynamic позволяют реализовывать полиморфизм в программировании, позволяя перекрывать методы в классах-наследниках с целью создания динамического дерева наследования. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  :: Главная :: Процедуры и функции :: 
  | 
||||
 ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007  | ||||