Page 31 - 4836
P. 31
Відношення узагальнення позначається суцільною
лінією з трикутною стрілкою на кінці. Стрілка вказує на більш
загальний клас (клас-предок або суперклас), а її відсутність -
на більш спеціальний клас (клас-нащадок або підклас).
Використання наслідування сприяє зменшенню
кількості коду, створеного для опису схожих сутностей, а
також сприяє написанню більш ефективного та гнучкого коду.
У розглянутому прикладі застосовано одиночне
спадкування. Деякий клас також може успадковувати
властивості та поведінку відразу декількох класів. Найбільш
популярним прикладом застосування множинного
спадкоємства є проектування системи обліку товарів у
зоомагазині.
Всі тварини в зоомагазині є спадкоємцями класу
"Тварина", а також спадкоємцями класу "Товар". Тобто всі
вони мають вік, мають потребу в їжі і воді і в той ж самий час
мають ціну і можуть бути продані.
Множинне спадкування на діаграмі зображується
точно так само, як одиночне, за винятком того, що лінії
спадкоємства сполучають клас-нащадок відразу з декількома
суперкласами.
Не всі об'єктно-орієнтовані мови програмування
містять мовні конструкції для опису множинного
спадкоємства.
У мові Java множинне успадкування має обмежену
підтримку через інтерфейси.
Метакласи
Отже, будь-який об'єкт має структуру, що складається з
полів і методів. Об'єкти, що мають однакову структуру і
семантику, описують одним класом, який і є, по суті,
визначенням структури об'єктів, породжених від нього.
У свою чергу, кожен клас, або опис, завжди має
строгий шаблон, що задається мовою програмування або
вибраною об'єктною моделлю. Він визначає, наприклад, чи
29