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.
Ikke alle klassehierarkier kan ha flere røtter, og strukturen i ethvert klasses hierark i det er i stor grad. Java® er derimot begrenset til enkeltarv, slik at klasseforholdene vanligvis er enklere, bygget som relativt selvstendige trær med en enkelt rot. Grensesnittarv cEn tilfører 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ær.
Komponentene i et klassehierarki kan variere i type og funksjon, så lenge reglene for språket 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 de siste klassene i hierarkiet som ikke har avledetKlasser under dem skal være offentlige og konkrete. Siden rent abstrakte klassehierarkier også kan eksistere, er dette bare en tommelfingerregel.
Selv om et klassehierarki kan være et nyttig verktøy for å organisere kode og innkapsle funksjonalitet, kan det være tider der å dykke for dypt inn i et hierarki faktisk kan forvirre koden, i stedet for å tydeliggjøre 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å.