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);
}
}
