Множинне успадкування: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
Немає опису редагування
Рядок 19:
*[[Perl]] використовує список класів для спадкування як впорядкованіий список. Компілятор використовує метод знайденим першим за допомогою [[Пошук в глибину|пошуку в глибину]] серед списку суперкласів або C3 лінеаризації ієрархії класів. Різні розширення забезпечуюють альтернативні побудови. [[Python]] має таку саму структуру, але на відміну від Perl містить це як частину синтаксису самої мови. В Perl і Python, на семантику класу впливає порядок спадкування.
 
[[Smalltalk]], [[C#]], [[Objective-C]], [[Object Pascal|Object Pascal]], [[Java]], [[Nemerle]], та [[PHP]] не підтримують множинної спадковості реалізації, і це дозволяє уникнути будь-якої неоднозначності. Однак, всі вони крім [[Smalltalk]] надають класам можливість реализувати декілька інтерфейсів.
{{пишу}}
 
Перевіркою на необхідність множинного спадкування може стати ситуація, коли після побудови структури класів, кінцеві класи (листя) можна сгрупувати в набори за різними ортогональними ознаками і ці набори між собою [[неперетинні множини|перетинаються]], що може слугувати ознакою неможливості обійтися однією структурою спадкування, в якій існували б якісь проміжні класи з потрібною поведінкою.
 
== Примітки ==