Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Páté cvičení Dědičnost Interface Abstarktní třídy a metody Finální třídy a metody Příklad.

Podobné prezentace


Prezentace na téma: "Páté cvičení Dědičnost Interface Abstarktní třídy a metody Finální třídy a metody Příklad."— Transkript prezentace:

1 Páté cvičení Dědičnost Interface Abstarktní třídy a metody Finální třídy a metody Příklad

2 Java cv22 Dědičnost geometrické těleso čtvereckruh barevný čtverec obvod obsah poloměr dědičnost obvod obsah obvod obsah strana obvod obsah strana barva výplně

3 Java cv23 Dědičnost Vztah mezi dvěma (zprostředkovaně více) objekty Vhodný nástroj a postup pro modelování problému Od abstraktnějších pojmů ke konkrétnějším Pravidlo vztahu JE-MÁ JE – adept na dědičnost čtverec JE geometrické těleso MÁ – adept na agregaci čtverec MÁ bod Dědičnost se definuje pomocí klíčového slova extends

4 Java cv24 Dědičnost class Potomek extends Predek { … //tělo třídy Potomek } Každá třída má předka, pokud ho nemá explicitně definovaného, pak dědí z java.lang.Object Přístup na rodiče pomocí super public class Kruh extends GeometrickeTeleso { public int nejakaMetoda() { super.nejakaMetoda(); //zavolani metody predka }

5 Java cv25 Dědičnost – problém s konstruktory Při vytváření potomka musí být vždy volán konstruktor předka Pokud na předkovi existuje konstruktor bez parametrů (i implicitní), je vše automaticky Pokud konstruktor předka má alespoň jeden parametr, musí se na první řádce kostruktoru potomka přímo zavolat kostruktor předka pomocí super

6 Java cv26 Interface Java nepodporuje vícenásobnou dědičnost Místo toho zavádí pojem interface Deklarace vlastností (metod), které objekt splňuje (a konstant) Definice interfacu se podobá definici třídy, metody nemají implementaci Rozhraní lze dědit, dokonce i vícenásobně Př.: interface Rozhrani { void metodaRozhrani(); }

7 Java cv27 Implementace Interface Třída může implementovat více rozraní Pak musí implementovat všechny metody definované v rozhraní Definuje se pomocí klíčového slova implements Př.: class NejakaTrida implements NejakeRozhrani

8 Java cv28 Abstraktní třídy a metody Abstraktní metoda je deklarovaná, ale nemá implementaci Třída musí být abstraktní, pokud obsahuje nějakou abstraktní metodu Od abstraktní třídy nelze vytvářet instance Lze tak vynutit implementaci metody v potomcích Př.: abstract class GeometrickeTeleso { abstract int obsah(); }

9 Java cv29 Finální třídy a metody Pokud je metoda označená jako finální, nelze jí překrýt (v potomkovi) Pokud je třída označena jako finální, nelze z ní dědit (vytvářet potomky) Od abstraktní třídy nelze vytvářet instance Lze tak vynutit implementaci metody v potomcích Př.: abstract class GeometrickeTeleso { abstract int obsah(); }

10


Stáhnout ppt "Páté cvičení Dědičnost Interface Abstarktní třídy a metody Finální třídy a metody Příklad."

Podobné prezentace


Reklamy Google