Ноу Інти, лекція, сімейство класів і спадкування інтерфейсів

Сімейство класів і реалізація інтерфейсів

спадкування

Об'єктно-орієнтоване програмування дає можливість не тільки визначити клас, що задає стан і поведінку об'єктів, а й організувати сімейство класів за допомогою важливого відносини між класами, званого ставленням спадкування.

Суть спадкування в тому, що новий клас в момент його створення можна оголосити спадкоємцем одного або декількох базових класів. Нехай вже визначено клас A. і при визначенні новий клас В оголошений спадкоємцем класу А. У цьому випадку клас В успадковує всі відкриті для нащадків властивості і поведінку класу А. - успадковує його інтерфейс. Це означає, що в класі В автоматично визначені змінні і методи класу А. задають інтерфейс.

Клас А називається базовим (батьківським) по відношенню до похідному (породженому) класу В. Дуже часто, говорячи про спадкування, використовують термінологію "батьківський клас" і "клас-нащадок". З огляду на транзитивності успадкування (транзитивність означає, що з тверджень "А батько В" і "В батько З" слід "А батько З") кожен клас може мати безліч батьків (предків) і безліч нащадків, серед яких виділяють "безпосередніх батьків" і " безпосередніх нащадків ". Нащадок транзитивно успадковує властивості і поведінку всіх своїх предків.

У похідному класі можна визначити нові властивості і нову поведінку, задавши нові змінні і нові методи. Більш того, в похідному класі можна перевизначити існуючий метод базового класу.

Спадкування називається множинним. якщо похідний клас може бути спадкоємцем декількох базових класів, тобто мати більше одного безпосереднього батька. При звичайному (НЕ множині) спадкуванні кожен похідний клас успадковує властивості тільки одного базового класу, тобто має одного безпосереднього батька.

Ставлення спадкування зазвичай представляють у вигляді графа, вузли якого відповідають класам, і з вузла A в вузол B веде дуга, якщо клас B є безпосередньою спадкоємницею класу A. Цей граф зображує структуру сукупності класів з точки зору успадкування. Якщо спадкування не множинне, то відповідний граф є деревом. У корені дерева знаходиться прабатько - клас, для якого всі інші класи є його нащадками-спадкоємцями.

Ось приклад сімейства класів, пов'язаних ставленням спадкування: