- Ve jmeném prostoru Entities vytvořte:
- rozhraní ITransport, které bude deklarovat metody:
- Double GetFuel() - vrátí množství paliva v dopravním prostředku
- int go(int distance) - pokusí se ujet danou vzdálenost a vrátí skutečně ujetou vzdálenost
- Double GetConsumption() - vrátí spotřebu dopravního prosttředku
- int GetGone() - vrátí vzdálenost, kterou daný prostředek urazil od posledního natankování.
- void fill(double fuel) - natankuje dané množství paliva
- abstraktní třídu Transport, která bude implementovat rozhraní ITransport. Třída si bude pamatovat:
- zbývající množství paliva (hodnota typu double)
- celkovou ujetou vzdálenost v km (hodnota typu int)
- třída bude implementovat všechny metody s výjimkou metody GetConsumption,
- třídu Car, která bude potomkem třídy Transport. Tato třída bude navíc:
- mít atribut consumption (hodnota typu double) - spotřeba v l/100 km.
- implementovat metodu GetConsumption, která bude vracet spotřebu auta.
- třídu Plane, která bude potomkem třídy Transport. Tato třída bude navíc:
- mít atributy:
- engineConsumption (hodnota typu double) - spotřeba 1 motoru v l/100 km
- engines (hodnota typu int) - počet motorů.
- implementovat metodu GetConsumption, která bude vracet celkovou spotřebu letadla (hodnota typu double).
- Hodnoty atributů se budou nastavovat pomocí parametrů u konstruktorů jednotlivých tříd.
- Všechny třídy vhodným způsobem překryjí metodu ToString tak, aby:
- Vracela ve vhodné podobě veškeré informace o dané třídě (včetně informací zděděných po rodiči).
- Zachovávala princip zapouzdření (k atributům rodičů bude přistupovat pomocí zděděných metod).
- Ve jmeném prostoru Vaší aplikace, který je různý od Entities vytvořte třídu Main, která bude demostrovat korektnost implementace objektové hierarchive ve jmeném prostoru Entities tak, že:
- Vytvoříte auto a letadlo. Auto bude mít spotřebu např. 4,5 l/100 km, letadlo 400 l/100 km, auto bude mít 50 litrů paliva a letadlo 1000 litrů.
- Vypíšete informace o obou objektech.
- S letadlem uletíte 1000 km, s autem ujedete 500 km.
- Vypíšete informace o obou objektech.
- S letadlem se pokusíte uletět 2000 km a s autem ujet 750 km.
- Vypíšete informace o obou objektech.
- Oba objekty budou deklarovány s typem ITransport.