Nedarvning i Java
En klasse kan arve fra en anden klasse (superklassen) og genbruge dens felter og metoder. Du udvider funktionalitet uden at kopiere kode.
public class Dyr {
public void lyd() {
System.out.println("Et dyr siger noget");
}
}
public class Hund extends Dyr { // Hund arver fra Dyr
@Override
public void lyd() {
System.out.println("Vov!");
}
}
public class Person {
private final String navn;
public Person(String navn) {
this.navn = navn;
}
}
public class Studerende extends Person {
private final String studieId;
public Studerende(String navn, String studieId) {
super(navn); // kalder superklassens constructor
this.studieId = studieId;
}
}
Dyr d1 = new Hund(); // reference-typen er Dyr, men objektet er Hund
d1.lyd(); // kalder Hund.lyd() => "Vov!"
- Når klasser deler kerne-egenskaber og adfærd
- Når du vil genbruge kode og tilføje specialisering
- Undgå nedarvning hvis klasserne ikke er en “er-en”-relation (brug komposition i stedet)