Programmeren in Java/Overerving: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
k -navigatie sjabloon, opkuisen |
k Eerste aanzet om hoofdstuk te herschrijven. Label: bewerking met nieuwe wikitekstmodus |
||
Regel 1:
{{Programmeren in Java|Deel=Klassen}}
Nu dat je klassen hebt gezien en misschien ondertussen meerdere klassen hebt gemaakt, zal het misschien al hebben gemerkt dat je klassen hebt die verwant zijn aan elkaar. Je hebt misschien een klasse geschreven voor een ''Car''(auto), ''Bus'', ''Bicycle''(fiets), enzoverder.. Allemaal zijn ze voertuigen, machines die we gebruiken om ons te verplaatsen. Ze hebben misschien bepaalde eigenschappen of functionaliteit gemeen. Sommige hebben een motor andere niet, sommige hebben passagiers andere weer niet, sommige hebben bovendien véél passagiers en andere minder, enzoverder...
In onderstaand voorbeeld is de klasse Rekening de verzameling van alle gemeenschappelijke datamembers en methods. De klassen Spaarrekening en Zichtrekening bevatten de gespecialiseerde gegevens. Men spreekt in dit verband ook over generalisatie en specialisatie. De klasse Rekening is de baseclass (of de superklasse of de parentklasse) van de Spaarrekening en de Zichtrekening.▼
Je kunt deze eigenschappen en functionaliteiten per klasse apart definiëren, maar dat is weer véél dubbel werk en kan ook weer leiden tot meer fouten. Wat je kunt doen is voor deze klassen een overkoepelende klasse maken die alle eigenschappen en functionaliteiten kan bevatten en waar de onderliggende klassen gebruik van kan maken.
==Simple voorbeeld==
==Uitgebreid voorbeeld==
▲In onderstaand voorbeeld is de klasse
<syntaxhighlight lang="java">
public class
private String
public double
public
this.accountNumber = accountNumber;
}
public void
}
public void
}
public void
}
public double
return
}
}
</syntaxhighlight>
<syntaxhighlight lang="java">
public class
private int
public ZichtRekening(String rnr, int bedrag) { //constructor▼
public CurrentAccount(String accountNumber, int maxCredit) {
super(
maxCredit = maxCredit;
}
}
</syntaxhighlight>
<syntaxhighlight lang=java>
private static double interest;▼
▲public class SpaarRekening extends Rekening{
▲ private static double interest;
▲ public
this.interest = interest;▼
▲ super(rnr);
▲ this.interest = interest;
}
this(reknr, interest);▼
}
public void
}
public void
}
public void overschrijven(
spaarRek.deposit(amount);
}
public void overschrijven(
spaarRek.deposit(amount);
}
public double
return
}
public static double getInterest() {▼
}▼
▲ public static double getInterest(){
return interest;
}
Regel 83 ⟶ 89:
<syntaxhighlight lang="java">
▲public class BankBediende {
▲ }
public static void main(String[] args) {
SavingsAccount savingsAccount = new SavingsAccount("1234", 2.5);
savingsAccount.deposit(100.0);
System.out.println("Saldo van
System.out.println("Saldo van
▲ }
▲ System.out.println("Saldo van zichtrekening: " + zicht.getSaldo());
}
</syntaxhighlight>
|