|
RHS |
TouristicRental02
Det viser sig at klassen Bicycle kun fungerer som fælles base for de to
specialiseringer CityBike og SportsBike - der vil aldrig blive konstrueret
objekter som blot er af typen Bicycle.
Alene af den grund bør klassen være abstract.
Envidere "glemte" vi at implementere en metode til at beregne den leje
der skal betales: getAmount().
Lejen afhænger naturligvis af basisRate og af længden af udlejningsperioden.
Alle sub-klasser vil få brug for denne metode, hvorfor den bør
implementeres i klassen Bicycle.
Det viser sig
at formlen for beregning vil være meget forskellig for de
enkelte cykel-typer så der er ikke en oplagt "default-beregning" vi
kan implementere i Bicycle.
Derfor tilføjes
metoden getAmount() i klassen Bicycle som en abstrakt
metode.
I klassen CityBike skal lejen beregnes udfra følgende tabel (hours er det antal timer cyklen har været udlejet, værdien vil blive overført til metoden getAmount() som parameter):
0 < hours <= 6 : rent = 45 + basicRate * hours
6 < hours <= 12 : rent = 35 + basicRate * hours
12 < hours : rent = 15 + basicRate * hours
For SportsBike skal lejen altid beregnes udfra følgende formel (gears er antal af gear for cyklen):
rent = (70 + gears) + basicRate * hours
Udfør de nødvendige ændringer i de tre klasser iflg. ovenstående.