Спадкування (програмування) - це

типи успадкування

просте спадкування

Клас. від якого відбулося спадкування, називається базовим або батьківським (англ. base class). Класи, які походять від базового, називаються нащадками. спадкоємцями або похідними класами (англ. derived class).

Деякі мови використовують абстрактні класи. Абстрактний клас - це клас, що містить хоча б один абстрактний метод. він описаний в програмі, має поля. методи і не може використовуватися для безпосереднього створення об'єкта. Тобто від абстрактного класу можна тільки наслідувати. Об'єкти створюються тільки на основі похідних класів, успадкованих від абстрактного. Наприклад, абстрактним класом може бути базовий клас «співробітник вузу», від якого успадковуються класи «аспірант», «професор» і т. Д. Так як похідні класи мають спільні поля і функції (наприклад, поле «рік народження»), то ці члени класу можуть бути описані в базовому класі. У програмі створюються об'єкти на основі класів «аспірант», «професор», але немає сенсу створювати об'єкт на основі класу «співробітник вузу».

множинне спадкування

При множині спадкування у класу може бути більш одного предка. В цьому випадку клас успадковує методи всіх предків. Переваги такого підходу в більшій гнучкості. Множинне спадкування реалізовано в C ++. З інших мов, які надають цю можливість, можна відзначити Python і Ейфель. Множинне успадкування підтримується в мові UML.

Множинне спадкування - потенційне джерело помилок, які можуть виникнути через наявність однакових імен методів в предках. У мовах, які позиціонуються як спадкоємці C ++ (Java. C # і ін.), Від множинного успадкування було вирішено відмовитися на користь інтерфейсів. Практично завжди можна обійтися без використання даного механізму. Однак, якщо така необхідність все-таки виникла, то, для вирішення конфліктів використання успадкованих методів з однаковими іменами, можливо, наприклад, застосувати операцію розширення видимості - «::» - для виклику конкретного методу конкретного батька.

Спроба вирішення проблеми наявності однакових імен методів в предках була зроблена в мові Ейфель. в якому при описі нового класу необхідно явно вказувати імпортовані члени кожного з успадкованих класів і їх іменування в дочірньому класі.

Більшість сучасних об'єктно-орієнтованих мов програмування (C #. Java. Delphi і ін.) Підтримують можливість одночасно успадковуватися від класу-предка і реалізувати методи декількох інтерфейсів одним і тим же класом. Цей механізм дозволяє багато в чому замінити множинне спадкування - методи інтерфейсів необхідно перевизначати явно, що виключає помилки при спадкуванні функціональності однакових методів різних класів-предків.

Єдиний базовий клас

У ряді мов програмування все класи явно або неявно успадковуються від якогось базового класу. Smalltalk був одним з перших мов, в яких використовувалася ця концепція. До таких мов відносяться Objective-C (NSObject), Perl (UNIVERSAL), Eiffel (ANY), Java (java.lang.Object), C # (System.Object), Delphi (TObject).

Спадкування в мовах програмування

Visual Basic

Спадкування в Visual Basic:

Дивитися що таке "Спадкування (програмування)" в інших словниках:

Спадкування - це процес передачі майна (спадщини, спадкового майна) померлого до інших осіб. Спадкування: Спадкування (біологія) успадкування (право) Спадкування (програмування) Множинне успадкування та його види: Ромбоподібне ... ... Вікіпедія

Спадкування (значення) - успадкування (програмування) успадкування (право) ... Вікіпедія

Програмування засноване на прототипах - прототипна програмування стиль об'єктно орієнтованого програмування, при якому відсутнє поняття класу, а повторне використання (успадкування) проводиться шляхом клонування існуючого примірника об'єкта прототипу. ... ... Вікіпедія

Клас (програмування) - Цей термін має також інші значення див. Клас. Клас в програмуванні набір методів і функцій. Інші абстрактні типи даних метакласи, інтерфейси, структури, перерахування характеризуються якимись своїми, іншими ... ... Вікіпедія

Віртуальне спадкування - Цей термін має також інші значення див. Спадкування. Про успадкування віртуальних методів, см віртуальний метод. Віртуальне спадкування (англ. Virtual inheritance) в мові програмування C ++ один з варіантів ... ... Вікіпедія

Множинне спадкування - Цей термін має також інші значення див. Спадкування. Множинне спадкування властивість, яка підтримується частиною об'єктно орієнтованих мов програмування, коли клас може мати більше одного суперкласу (безпосереднього ... Вікіпедія

Ромбоподібне спадкування - Цей термін має також інші значення див. Спадкування. Діаграма успадкування класів у вигляді ромба. Ромбоподібне спадкування (... Вікіпедія

Схожі статті