Programmeren in Java/Overerving: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
k Eerste aanzet om hoofdstuk te herschrijven. Label: bewerking met nieuwe wikitekstmodus |
caveat |
||
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...
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.
==
==Uitgebreid voorbeeld==
In onderstaand voorbeeld is de klasse ''BankAccount''(bankrekening) de verzameling van alle gemeenschappelijke velden en methoden. De klassen ''SavingsAccount'' (spaarrekening) en ''CurrentAccount'' (zichtrekening) bevatten de
<syntaxhighlight lang="java">
public class BankAccount {
private final String accountNumber;
public double amount;
Regel 37:
<syntaxhighlight lang="java">
public class CurrentAccount extends BankAccount {
private final int maxCredit;
public CurrentAccount(String accountNumber, int maxCredit) {
Regel 66:
public void withdraw(double amount) {
this.amount -= amount;
}
Regel 102 ⟶ 97:
}
</syntaxhighlight>
(Merk op dat ''double'' een binaire komma heeft en dus niet geschikt is voor exacte berekeningen met decimale fracties. In het echt zou hier een integertype voor gebruikt worden.)
{{sub}}
|