RHS   Allan   C#.NET Øvelser TouristicRental02


 

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.


Maintained by: Allan Helboe Nielsen
Updated: 3 November, 2005 1:04