Nasljeđivanje (programiranje)
U objektno orijentiranom programiranju, nasljeđivanje je mehanizam zasnivanja objekta ili klase na bazi drugog objekta (prototipsko nasljeđivanje) ili klase (klasno nasljeđivanje), zadržavajući sličnu implementaciju. Također se definira kao izvođenje novih klasa (podklasa) iz postojećih koje se nazivaju super klasa ili bazna klasa te formiranje istih u hijerarhiju klasa. U većine objektno orijentiranih jezika s klasama, objekt kreiran kroz nasljeđivanje, child objekt, preuzima sva svojstva i ponašanja parent objekta, izuzev: konstruktora, destruktora, overloadanih operatora i friend funkcija bazne klase. Nasljeđivanje omogućava kreiranje klasa koje su napravljene na osnovu postojećih klasa, kako bi se opisala nova implementacija dok se zadržavaju ista ponašanja, za ponovno iskorištenje koda i nezavisno proširenje originalnog softvera preko javnih klasa i interfejsa. Veze među objektima ili klasama kroz nasljeđivanje daje strukturu poznatu kao usmjeren graf. Nasljeđivanje je izumljeno 1969. godine za Simulu a danas se koristi u objektno orijentiranim jezicima kao što su Java, C++ ili Python. Naslijeđena klasa se zove subklasa ili podklasa svoje roditelj klase tj. super klase. Termin "nasljeđivanje" se labavo koristi za klasno i prototipsko programiranje, ali u uskoj upotrebi termin je rezervisan za programiranje bazirano na klasama (jedna klasa se nasljeđuje iz druge), sa odgovarajućom tehnikom u prototipskom programiranju koje se ispravnije naziva delegacija (jedan objekt delegira na drugi). Nasljeđivanje se ne treba pobrkati sa terminom podtipiranje. U nekim jezicima nasljeđivanje i podtipiranje se slažu, dok se u drugih razlikuju; općenito, podtipiranje omogućava is-a vezu, gdje nasljeđivanje samo ponovno koristi implementaciju i uspostavlja sintatsku vezu, a ne nužno semantičku vezu (nasljeđivanje ne osigurava podtipiranje ponašanja). Za razlikovanje ovih koncepata, podtipiranje je također poznato kao nasljeđivanje interfejsa, dok je nasljeđivanje - kako je ovdje definirano - poznato kao nasljeđivanje implementacije ili nasljeđivanje koda. Ipak, nasljeđivanje je često korišten mehanizam za uspostavu podtipskih veza. Nasljeđivanje je u kontrastu sa objektnom kompozicijom, gdje jedan objekt sadržava drugi objekt (ili objekti jedne klase sadrže objekte druge klase); Kompozicija implementira has-a vezu, u kontrastu sa is-a veze podtipiranja.