Video: Curso Java 13 - Herencia @JoseCodFacilito 2024
Arv henviser til en funktion af Java-programmering, som giver dig mulighed for at oprette klasser, der er afledt af andre klasser. En klasse, der er baseret på en anden klasse arver den anden klasse. Klassen, der er arvet, er forældersklassen, basklassen , eller superklassen. Klassen, der gør den arvelige, er undervisningen, den afledte klasse, eller underkategorien .
En underklasse påtager sig automatisk alle adfærd og egenskaber i sin basisklasse. Så hvis du har brug for at oprette flere klasser for at beskrive typer, der ikke er identiske, men har mange funktioner til fælles, kan du oprette en basisklasse, som definerer alle de fælles funktioner. Derefter kan du oprette underklasser, der arver de fælles funktioner.
En underklasse kan tilføje funktioner til den grundlæggende klasse, som den arver ved at definere egne metoder og felter. Dette er en af måderne, som en afledt klasse skelner fra sin base klasse.
En underklasse kan også ændre den adfærd, der leveres af basisklassen. En basisklasse kan bestemme, at alle klasser afledt af den har en metode, der hedder spil, for eksempel, men hver klasse er fri til at give sin egen implementering af spillemetoden. I dette tilfælde giver alle klasser, der udvider basisklassen deres egen implementering af legemetoden.
For at oprette en underklasse bruger du udvidet søgeord på klassedeklarationen til at angive navnet på basisklassen. Grundformatet for en underklasse erklæring er dette:
offentlig klasse Klassenavn udvider BaseClass {// klasse krop går her}
Underklassen arverer automatisk klasseklassen i basisklassen, så Alle metoder eller felter, der er defineret af basisklassen, indgår automatisk i underklassen. Klassekroppen for en underklasse omfatter således kun de metoder eller felter, der differentierer underklassen fra sin basisklasse.
Antag for eksempel at du har en klasse ved navn Ball, der definerer en baseball, og du vil oprette en underklasse med navnet BouncingBall, der tilføjer evnen til at hoppe. Du kan gøre det som sådan:
Offentlige klasse BouncingBall udvider bold {public void bounce () {// udløsningsmetoden}}
Her er nogle andre vigtige detaljer om at skabe underklasser:
-
En underklasse arver alle medlemmer fra sin base klasse. Konstruktører er imidlertid ikke betragtede medlemmer. Som et resultat gør en underklasse ikke arvekonstruktorer fra sin basisklasse.
-
Synlighed (offentlig eller privat) af medlemmer, der er arvet fra basisklassen, er den samme i underklassen.Det betyder, at du ikke kan få adgang til underklassemetoder eller felter, der er erklæret i grundklassen som private.
-
Du kan tilsidesætte en metode ved at erklære et nyt medlem med samme underskrift i underklassen.
-
En særlig type synlighed kaldes beskyttede huderfelter og metoder fra andre klasser, men gør dem tilgængelige for underklasser.
-
Du kan tilføje flere metoder eller felter - privat, offentligt eller beskyttet - til en underklasse.