Skip to main content

Hva er klassehierarki?

Et klassehierarki, også kalt en klasse taksonomi, er en gruppe relaterte klasser som er koblet gjennom arv for å gjøre lignende ting.Toppen av hierarkiet kan være en enkelt baseklasse som alle andre klasser under det er avledet fra, eller hierarkiet kan ha flere baseklasser hvis funksjonalitet smelter sammen senere i en eller flere avledede klasser.Forholdene mellom klassene kan illustreres som trær, og hvert mindre tre i den store taksonomien kan også betraktes som et hierarki.Skrevet i. C ++ tillater flere arv, så komplekse hierarkier kan bygges med flere røtter og flere trær som smelter sammen til hverandre.Java , på den annen side, er begrenset til enkeltarv, slik at klasseforholdene vanligvis er enklere, bygget som relativt selvstendige trær med en enkelt rot.Grensesnittarv kan gi en viss kompleksitet til et klassehierarki i Java , men grensesnitt blir nesten aldri påberopt i et så komplekst rammeverk at det ville være som å slå sammen trærlenge som språkets regler alltid følges med hensyn til arv.Klasser i et hierarki kan være offentlig, beskyttet, abstrakt, konkret eller virtuelt.Grensesnitt, globale funksjoner og venner kan også brukes.Avhengig av dataspråket, kan noen av disse typene gi seg bedre til arv enn andre.Generelt er hierarkier veldig fleksible, og kan brukes på mange måter til mange formål.

Det er ingen harde regler for hvor bestemte typer klasser må plasseres i et hierarki.Enhver klasse kan tenkes å være noen av typene som er nevnt ovenfor.Generelt sett skal de siste klassene i hierarkiet som ikke har noen avledede klasser under dem være offentlige og konkrete.Siden rent abstrakte klassehierarkier også kan eksistere, er dette imidlertid bare en tommelfingerregel.

Selv om et klassehierarki kan være et nyttig verktøy for å organisere kode og innkapsling av funksjonalitet, kan det være tider der å dykke for dypt inn i et hierarki maiFaktisk forveksle koden, i stedet for å avklare den og gjøre det lettere å vedlikeholde.Å bygge et robust forhold mellom mange klasser tar en viss framsyn;Selv om det i utgangspunktet kan være lettere å dele kode i mange små stykker, kan de små brikkene bli vanskeligere å håndtere senere.Når det er bygget riktig, hjelper et klassehierarki både utviklere og brukere med å bestemme hvordan klasser fungerer.Hvis det er bygget uten vedlikehold og klarhet i tankene, kan de mange arvene av arv være forvirrende å se tilbake på og forstå.