Dziedziczenie wielokrotne, gdy mówimy o językach programowania obiektowego (OOP), to termin odnoszący się do klasy, która dziedziczy funkcjonalność z więcej niż jednej klasy nadrzędnej. Terminu nie można w pełni zrozumieć bez zrozumienia, czym jest klasa. Bardzo krótka definicja klasy to zestaw instrukcji programistycznych lub kodu w języku OOP, który opisuje i jest esencją encji. Klasy definiują wszystkie właściwości jednostki i zawierają wszystkie metody niezbędne do manipulowania tymi właściwościami.
W zależności od programu, który jest kodowany, może zajść potrzeba napisania wielu klas, które mają wspólne cechy, ale muszą pozostać odrębnymi jednostkami. Tutaj w grę wchodzi wielokrotne dziedziczenie. Na przykład postęp technologiczny, który umożliwiłby zbudowanie łodzi podwodnej, która mogłaby latać jak samolot lub samolotu, który mógłby zanurzyć się jak łódź podwodna, wytworzyłby produkt hybrydowy. Ta hybryda miałaby takie same właściwości jak samolot i niektóre właściwości łodzi podwodnej, ale byłaby unikalnym produktem lub jednostką. Dziedziczenie wielokrotne pozwoliłoby łatwo hybrydzie na jednoczesne dziedziczenie funkcjonalności z klasy samolotu i funkcjonalności z klasy łodzi podwodnej bez kopiowania kodu.
Innym sposobem wyjaśnienia wielokrotnego dziedziczenia jest stwierdzenie, że pozwala ono więcej niż jednej klasie działać jako podstawa dla innych klas. Korzystanie z dziedziczenia wielokrotnego ma zalety zamiast zwykłego kopiowania kodu z jednej lub kilku klas do drugiej. Wykrycie błędów w programach często wymaga czasu, ale gdy zostaną wykryte, należy je jak najszybciej naprawić. Jeśli kod zawierający błędy jest kopiowany do kilku klas, programiści muszą zastosować tę samą poprawkę do każdej kopii kodu. Jednak w przypadku zastosowania dziedziczenia wielokrotnego musiałby pracować z kodem tylko oryginalnej klasy, z której wszystkie podklasy dziedziczą funkcjonalność.
Nie wszystkie języki programowania obsługują dziedziczenie wielokrotne, nawet jeśli obsługują orientację obiektową. Można twierdzić, że niektóre wersje niektórych języków obsługują to, podczas gdy w rzeczywistości obsługują dziedziczenie tylko z dwóch klas. Klasy, z których inne klasy dziedziczą funkcjonalność, są często nazywane klasami „rodzicowymi” lub „superklasami”, a klasy, które dziedziczą, nazywane są klasami „podrzędnymi” lub „podklasami”. Programistom, którzy są zainteresowani pracą z klasami w ten sposób, zdecydowanie zaleca się najpierw zdobycie solidnej wiedzy na temat podstaw klas, zanim spróbują wykorzystać moc dziedziczenia wielokrotnego, ponieważ błędy lub złe praktyki kodowania w klasie nadrzędnej są przekazywane do klasy dziecka.