Višestruko nasljeđivanje, kada govorimo o objektno orijentiranim programskim (OOP) jezicima, pojam je koji se odnosi na klasu koja nasljeđuje funkcionalnost više od jedne roditeljske klase. Pojam se ne može u potpunosti shvatiti bez razumijevanja što je klasa. Vrlo kratka definicija klase je skup programskih uputa ili koda u OOP jeziku koji opisuje i predstavlja bit entiteta. Klase definiraju sva svojstva entiteta i sadrže sve metode potrebne za manipuliranje tim svojstvima.
Ovisno o programu koji se kodira, može postojati potreba za pisanjem mnogih klasa koje imaju zajedničke stvari, ali moraju ostati različite cjeline. Ovdje dolazi do izražaja višestruko nasljeđivanje. Na primjer, tehnološki napredak koji bi omogućio izgradnju podmornice koja bi mogao letjeti kao avion ili aviona koji bi se mogao potopiti kao podmornica proizveo bi hibridni proizvod. Taj hibrid bi imao neka od istih svojstava kao i avion i neka svojstva podmornice, ali bi bio jedinstven proizvod ili entitet. Višestruko nasljeđivanje lako bi omogućilo hibridu da naslijedi funkcionalnost iz klase aviona i funkcionalnost iz klase podmornice u isto vrijeme bez kopiranja koda.
Drugi način objašnjenja višestrukog nasljeđivanja je reći da ono dopušta da više od jedne klase djeluje kao baza za druge klase. Postoje prednosti korištenja višestrukog nasljeđivanja umjesto jednostavnog kopiranja koda iz jedne ili više klasa u drugu. Često je potrebno vrijeme za otkrivanje grešaka u programima, ali kada se otkriju, potrebno ih je što prije ispraviti. Ako se kod koji sadrži greške kopira u nekoliko klasa, programeri moraju primijeniti isti popravak na svaku kopiju koda. Međutim, kada se koristi višestruko nasljeđivanje, on ili ona bi morali raditi s kodom samo izvorne klase iz koje sve podklase nasljeđuju funkcionalnost.
Ne podržavaju svi programski jezici višestruko nasljeđivanje, čak i ako podržavaju objektnu orijentaciju. Za neke se verzije nekih jezika može tvrditi da ga podržavaju, dok u stvarnosti podržavaju nasljeđivanje od samo dvije klase. Klase od kojih druge klase nasljeđuju funkcionalnost često se nazivaju “nadređenim” klasama ili “super klasama”, a klase koje nasljeđuju nazivaju se “podređenim” klasama ili “podklasama”. Programerima koji su zainteresirani za rad s klasama na ovaj način toplo se savjetuje da prvo steknu solidno znanje o osnovama klasa prije nego pokušaju iskoristiti moć višestrukog nasljeđivanja, jer se greške ili loše prakse kodiranja u roditeljskoj klasi prenose. u dječji razred.