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.

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