Skip to main content

Wat is klassenhiërarchie?

Een klassenhiërarchie, ook wel een klassentaxonomie genoemd, is een groep gerelateerde klassen die verbonden zijn door erfenis om soortgelijke dingen te doen.De top van de hiërarchie kan een enkele basisklasse zijn waaruit alle andere klassen eronder zijn afgeleid, of de hiërarchie kan meerdere basisklassen hebben waarvan de functionaliteiten later samengaan in een of meer afgeleide klassen.De relaties tussen de klassen kunnen worden geïllustreerd als bomen, en elke kleinere boom binnen de grote taxonomie kan ook worden beschouwd als een hiërarchie.Geschreven in. C ++ staat meerdere overerving toe, dus complexe hiërarchieën kunnen worden gebouwd met meerdere wortels en meerdere bomen die in elkaar samenvoegen.Java , daarentegen is beperkt tot enkele erfenis, dus zijn klassenrelaties zijn meestal eenvoudiger, gebouwd als relatief zelfstandige bomen met een enkele wortel.Interface -overerving kan enige complexiteit toevoegen aan een klassenhiërarchie in Java , maar interfaces worden bijna nooit ingeroepen in zo'n complex kader dat het zou zijn als het samenvoegen van bomen.Zolang de regels van de taal altijd worden gevolgd met betrekking tot erfenis.Klassen in een hiërarchie kunnen openbaar, beschermd, abstract, concreet of virtueel zijn.Interfaces, globale functies en vrienden kunnen ook worden gebruikt.Afhankelijk van de computertaal, kunnen sommige van deze typen zich beter lenen om overerving te zijn dan andere.Over het algemeen zijn hiërarchieën zeer flexibel en kunnen ze op veel manieren worden gebruikt voor veel doeleinden.

Er zijn geen harde regels over waar bepaalde soorten klassen in een hiërarchie moeten worden geplaatst.Elke klasse kan mogelijk alle hierboven genoemde typen zijn.Over het algemeen moeten de laatste klassen in de hiërarchie die geen afgeleide klassen onder hen hebben openbaar en concreet zijn.Aangezien puur abstracte klassenhiërarchieën ook kunnen bestaan, is dit echter slechts een vuistregel.

Hoewel een klassenhiërarchie een nuttig hulpmiddel kan zijn om code te organiseren en functionaliteit in te kapselen, kunnen er momenten zijn waarop te diep in een hiërarchie kan wordenVerwar de code eigenlijk, in plaats van het te verduidelijken en gemakkelijker te behouden.Het opbouwen van een robuuste relatie tussen vele klassen kost een bepaalde hoeveelheid vooruitziende blik;Hoewel het in eerste instantie misschien gemakkelijker is om code in veel kleine stukjes te breken, kunnen die kleine stukjes later moeilijker worden om te hanteren.Wanneer het goed is gebouwd, helpt een klassenhiërarchie zowel ontwikkelaars als gebruikers bij het bepalen hoe klassen werken.Als het wordt gebouwd zonder onderhoud en duidelijkheid in gedachten, kunnen de vele niveaus van overerving verwarrend zijn om terug te kijken en te begrijpen.