Vytvořte si rozhraní CarInt, které deklaruje metody:
- double ride(int kolik)
- void repair()
- double remains()
Rozhraní CarInt bude implementováno abstraktní třídou AbstrCar, která bude mít atributy:
- mtbf - počet kilometrů, po kterých je nutné provést opravu (celé číslo)
- dist - počet ujetých kilometrů od poslední opravy (reálné číslo)
Metody budou mít následující význam:
- Konstruktor(int mtbf) - jako parametr mu bude předána hodnota mtbf. Inicializuje nový objekt Auto.
- double ride(int dist) - abstraktní metoda
- void repair() - nastaví hodnotu ujeto na hodnotu 0.
- double remains()- abstraktní metoda
- double getMTBF() - vrátí hodnotu atributu mtbf
- double getDist() - vrátí hodnotu atribut dist
- void setDist(double dist)- nastaví hodnotu atribut dist
Dále nadefinujte třídy Car a Lorry, které jsou potomky třídy AbstrCar.
Třída Car má navíc atribut places, který udává počet přepravovaných osob. Metody ride a remains jsou upraveny tak, aby zohledňovaly zvýšené opotřebení součástek dané obsazeností auta. Koeficient, který vyjadruje zvýšení opotřebení a snížení trvanlivosti je dán vztahem 1+0.1*places
Třída Lorry má navíc atribut load, který udává množství přepravovaného materiálu. Metody ride a reamins jsou upraveny tak, že ujetá vzdálenost se násobí koeficientem, 1+0,2*load.
Obě třídy budou přetězovat metodu toString, která bude vracet retezec "Car/Lorry:\tMTBF:mtbf\tDist:dist".
Dále napište třídu Main, která bude demostrovat správnost Vaší implementace