Objectif
- Créer une classe enfant par héritage
- Ajouter des méthodes à une classe enfant
- Redéfinir des méthodes dans une classe dérivée
Partie 1 – Enoncé du problème
Ecrivez une classe Building qui possède les attributs suivants:
- address
La classe Building doit disposer des constructeurs suivants :
- Building
- Building(String adresse)
La classe Building
doit contenir des getters/setters pour les différents attributs. Elle doit également posséder une méthode toString()
héritée de la classe Object
pour donner la représentation textuelle de la classe.
Partie 2
Ecrivez une classe House qui hérite de Building avec les attributs supplémentaires suivants
- nRooms
La classe House doit disposer des constructeurs suivants :
- House(address, nRooms)
La classe House doit également posséder les getters / setters nécessaires à la modifications des attributs. Faites attentions que le nombre de pièces de la maison ne doit jamais être négatif.
Partie 3
Ecrivez le code nécessaire au test de ces deux classes.
Solution
public class Building{ protected String address; Building(){ this(null); } Building(String address){ this.address = address; } /** * Getters and setters */ public String getAddress() { return this.address; } public void setAddress(String s) { this.address = s; } @Override public String toString() { return "This is a building located at " + getAddress(); } }
public class House extends Building{ private int nRooms; /** * Getters and setters */ public void setNRooms(int newNumberOfRooms) { this.nRooms = Math.abs(newNumberOfRooms); } public int getNRooms() { return this.nRooms; } House(String address, int nRooms){ super(address); setNRooms(nRooms); } @Override public String toString() { return super.toString() + " with " + getNRooms() + " rooms"; } }
public class Testing { public static void main(String[] args) { Building b = new Building("Rte de Saly 15"); House h = new House("Industrie 23", 56); h.setNRooms(3); System.out.println(h); } }