Java: Abstraktní třídy, dědičnost a rozhraní

Z MiS
Přejít na: navigace, hledání


Obsah

Dědičnost

Příklad
public class Kamion {
    int nosnost;
    ...
    public int getNosnost() { return this.nosnost; }
    ...
}
public class KamionSPrivesem extends Kamion {
    Prives prives;
    ...
    public int getNosnost() { 
        return this.getHodnota()+this.prives.getHodnota(); 
    }
    ...
}


Rozhraní

Deklarace rozhraní
public interface Zasahnutelne {
    public void zasah(Strela s);
        // Neříkáme, jak se má objekt chovat. 
        // Jen vyžadujeme, že bude mít tuto metodu.
}
Třída, která implementuje rozhraní
public class Prisera {

    ... 
    ... Může mít různé metody a atributy, ale musí mít metodu zasah(...)!!!
    ...

    public void zasah(Strela s) {
        // Popíšeme, jak se má reagovat na zprávu/metodu zasah(...).
        this.getWorld().removeObject(this);
    }

Abstraktní třída


Odkaz na předka — super


Přetypování

Příklady přetypování
Prekazka prekazka = (Prekazka) this.getOneIntersectingObject(Prekazka.class);
if (prekazka != null) {
    int prekazka.getPruhlednost();
    ...
}
public void actionPerformed(ActionEvent event) {
    Button zdroj = (Button) event.getSource();
    zdroj.getTitle();
    ...
}
Pozor, musíme si být stoprocentně jisti, že objekt, který je uložen v proměnné datového typu Predek je ve skutečnosti opravdu datového typu Potomek. Pokud by nebyl, běh programu by skončil výjimečný stavem a aplikace by havarovala.

Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje