public class Employee extends Person { // ... popis vlastností (proměnných, metod...) // zaměstnance navíc oproti (obecnému) člověku... }
ChovatelPsu je současně typu Clovek nebo
Pes je současně typu DomaciZvire
Object.
Person ← Employee ← Manager
extends:
public class Employee extends Person { // ... popis vlastností (proměnných, metod...) // zaměstnance navíc oproti (obecnému) člověku... }
Opakování:
record) nebo z C jako struct.
Dědičnost (alespoň v javovém smyslu) znamená, že dceřinná třída (podtřída, potomek):
Account
Account nazveme CreditAccount
public class CreditAccount extends Account { // private double balance; zdědí se z nadtřídy "Account" // zde pamatuji navíc, kolik mohu "jít do mínusu" private double creditLimit; public void add(double amount) { if (balance + creditLimit + amount >= 0) { // přes "super" zavoláme původní "neopatrnou" metodu super.add(amount); } else { System.err.println("Nelze odebrat částku " + (-amount)); } } // writeInfo(), transferTo(Account to, double amount) se zdědí }
extends značí, že třída CreditAccount je
potomkem/podtřídou/rozšířením/dceřinnou třídou (subclass) třídy Account.
super.metoda(…); značí, že je volána metoda
rodičovské třídy/předka/nadtřídy (superclass).
super nepoužilo, zavolala by se metoda add
třídy CreditAccount a program by se zacyklil!
Demoprojekt (viz IS) private_account:
Account
PrivateAccount, což je osobní/privátní účet
Demoprojekt (viz IS) checked_private_account:
Account (obyčejný účet)
PrivateAccount (osobní/privátní účet)
CheckedPrivateAccount (osobní účet s kontrolou minimálního zůstatku)