Bij deze opdracht ga je oefenen met overerving. We gaan een overervingsstructuur bouwen waar we gemeenschappelijke attributen opslaan in een superklasse en de specifieke attributen opslaan in de klassen zelf.
In de applicatie die we gaan bouwen zijn er twee soorten gebouwen: huizen en kantoren. Van elk gebouw moeten we het adres, de postcode, de stad en de oppervlakte in vierkante meters opslaan. Deze attributen kunnen niet meer gewijzigd worden zodra ze ingesteld zijn. Wel moet het mogelijk zijn om de gegevens op te vragen bij het object.
Een huis is een gebouw met een aantal extra attributen. Bij een huis slaan we de naam van de eigenaar, of het huis een garage heeft (of niet) en de prijs van het huis in euro’s extra op. Een huis kan van eigenaar wisselen. De andere attributen blijven hetzelfde en kunnen, nadat ze ingesteld zijn, niet meer wijzingen. Vanzelfsprekend moeten we wel de gegevens kunnen lezen.
Tot slot is er een kantoor. Dit is een gebouw, aangevuld met de volgende eigenschappen: de naam van het bedrijf dat er gehuisvest is en het aantal medewerkers dat er werkt. De bedrijfsnaam en het aantal medewerkers moet aanpasbaar zijn.
Implementeer de verschillende klassen. Maak een toString()
methode in elke klasse, zodat we eenvoudig de gebouwen kunnen printen.
Hieronder staan twee mogelijke uitvoeren van de toString()
methoden voor de klassen House
and Office
:
House of Evert Duipmans with garage, price: EUR 300000, Address: Schoolstraat 1, Zip code: 7511AA, City: Enschede, Area: 150 m2
Office of Saxion with 1500 employees, Address: Van Galenstraat 19, Zip code: 7511JL, City: Enschede, Area: 600 m2