OOP 3

46. hodina PVA


Matěj Cajthaml — SSPŠ

©

Opakování OOP

  • OOP
  • třídy & instance
  • vlastnosti
  • metody
  • modifikátory

Dedičnost

  • dovoluje nám zdědit vlastnosti a metody z jiné třídy
  • tyto vlastnosti nyní budou náležet dané třídě a můžeme je číst a upravovat
  • k instanci této třídy můžeme přistupovat, jako kdyby to byla třída, ze které dědíme

K čemu by se mohla dědičnost hodit?

Zlepšení přehlednosti kódu

a co kdybychom chtěli něco přidat do prvního řešení?

Výhody

  • kód se nám zpřehlední
  • jednoduší přístup k podobným objektům

Nevýhody

  • při velkém množství objektů a tříd začně být nepřehledné
  • zejména při velkém zanořování

Abstrakce

  • zmíněný způsob ukládání dat podobných datových struktur na jednom místě
  • stačí nám ukládat obecnou nejnižší děděnou třídu
  • další věci než děděná třída obsahuje potřebujeme jen někdy

Zkontrolování typu

  • při abstrakci se nám hodí ukládat typy dohromady
  • někdy se nám ale nehodí k nim tak přistupovat
  • pomocí operatoru is můžeme zkontrolovat, zda je instance z nějaké třídy
  • může být exaktní nebo děděná

Aktuální dědičnost dovoluje dědit pouze vlastnosti, které jsou public. private se nenabízí, proč tomu tak je?

Modifikátor viditelnosti protected

  • podobné private
  • nyní ale k vlastnosti/metodě budou moci přistupovat i třídy, které z této třídy dědí

K čemu nám slouží konstuktory?

Klíčové slovo base

  • umožnuje nám přistupovat k nadřazené třídě, ze které dědíme
  • můžeme volat metody a konstruktory

Lze dědit jen z jedné třídy.

Všechny třídy nakonec dědí ze třídy Object.

base volá nadřazený konstruktor, který může volat jeho nadřazený konstruktor a tak dále.

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/