Skip to main content

Vad är klasshierarki?

En klasshierarki, även kallad en klass taxonomi, är en grupp relaterade klasser som är kopplade till arv för att göra liknande saker.Den övre delen av hierarkin kan vara en enda basklass från vilken alla andra klasser under den härleds, eller hierarkin kan ha flera basklasser vars funktionaliteter smälter samman senare i en eller flera härledda klasser.Förhållandena mellan klasserna kan illustreras som träd, och varje mindre träd inom den stora taxonomin kan också betraktas som en hierarki.

Inte alla klasshierarkier kan ha flera rötter, och strukturen för alla klasshierarki beror till stor del på språket dess dessSkrivet i. C ++ tillåter flera arv, så komplexa hierarkier kan byggas med flera rötter och flera träd som smälter samman till varandra.Java reg;Gränssnittsarv kan lägga till en viss komplexitet i en klasshierarki i Java , men gränssnitt åberopas nästan aldrig i en så komplex ram att det skulle vara som att slå samman träd.

Komponenterna i en klasshierarki kan variera i typ och funktion, eftersom det skulle vara som att slå samman träd.så länge språkets regler alltid följs med avseende på arv.Klasser i en hierarki kan vara offentlig, skyddad, abstrakt, konkret eller virtuell.Gränssnitt, globala funktioner och vänner kan också användas.Beroende på datorspråk kan vissa av dessa typer ge sig bättre till arv än andra.I allmänhet är hierarkier mycket flexibla och kan användas på många sätt för många ändamål.

Det finns inga hårda regler för var vissa typer av klasser måste placeras i en hierarki.Varje klass kan tänkas vara någon av de typer som nämns ovan.I allmänhet bör de sista klasserna i hierarkin som inte har några härledda klasser under dem vara offentliga och konkreta.Eftersom rent abstrakta klasshierarkier också kan existera, är detta dock bara en tumregel.

Även om en klasshierarki kan vara ett användbart verktyg för att organisera kod och kapsla in funktionalitet, kan det finnas tillfällen där djupt i en hierarki kanFörvirra faktiskt koden, snarare än att klargöra den och göra det lättare att underhålla.Att bygga en robust relation mellan många klasser tar en viss mängd framsyn;Även om det ursprungligen kan vara lättare att dela kod i många små bitar, kan dessa små bitar bli svårare att hantera senare.När de byggs ordentligt hjälper en klasshierarki både utvecklare och användare för att bestämma hur klasser fungerar.Om det är byggt utan underhåll och tydlighet i åtanke kan de många nivåerna av arv vara förvirrande att se tillbaka på och förstå.