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

Podobné prezentace


Prezentace na téma: "Páté cvičení Dědičnost Interface Abstarktní třídy a metody"— 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 Dědičnost dědičnost geometrické těleso čtverec kruh barevný čtverec
obvod obsah obvod obsah strana obvod obsah poloměr čtverec kruh obvod obsah strana barva výplně barevný čtverec dědičnost Java cv2

3 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 Java cv2

4 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 Java cv2

5 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 Java cv2

6 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(); } Java cv2

7 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 Java cv2

8 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(); } Java cv2

9 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(); } Java cv2

10


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

Podobné prezentace


Reklamy Google