Единично и множествено наследяване на Java

Нов производен клас може да бъде изграден на базата само на един базов клас – подобен модел в програмирането се обозначава с терминаsingle inheritance(единично наследяване). Предполага се, че производният клас наследява не само договора на базовия клас, но и елементи от неговата реализация. Някои обектно-ориентирани езици за програмиране поддържат моделамножествено наследяване, според който производен клас може да наследи характеристиките на няколко основни класа едновременно.

Функцията за множествено наследяване е полезна, когато производен клас трябва да получи комбинация от множество договори и да наследи някои или всички техни механизми за изпълнение. Въпреки това може да има и проблеми, свързани с факта, че елементи от един и същи базов клас се наследяват по няколко "заобиколни" начина. Разгледайте следната графика, представяща йерархията на типовете.

Проблемите с множественото наследяване като такова се коренят в допускането наимплементация,множествено наследяване, но в много случаи само абстрактни договори и само едно конкретно изпълнение се наследяват в даден момент. Осигуряването на средство за наследяване на абстрактни договори без прилагането им ви позволява да се възползвате от модела на множествено наследяване и да избегнете негативните последици, за които говорихме. Наследяването на абстрактни договори се наричанаследяване на интерфейси.Езикът за програмиране Java поддържа наследяването на интерфейси, като позволява декларирането на така нареченитеинтерфейсни типове,- всички от които ще разгледаме в следващата глава.

Източник: Арнолд, Кен, Гослинг, Джеймс, Холмс,Дейвид. Език за програмиране Java. 3-то изд.: Пер. от английски. - М .: Издателство "Уилям", 2001. - 624 с. : аз ще. - Парал. синигер. английски