abstract class Vehicule {
  abstract void avancer();
  void avancer(int nombreDeFois) {
    for (int i = 0; i < nombreDeFois; i++)
      avancer();
  }
  int getNombreRoues() { 
    return 4;
  }
}

class Voiture extends Vehicule {
  void avancer() {
    System.out.print("Voiture avance. ");
  }
}

class Moto extends Vehicule {
  void avancer() {
    System.out.print("Moto avance. ");
  }
  int getNombreRoues() { return 2;}
}

class Bus extends Vehicule {
  void avancer() {
    avancerProchainArret();
  }
  private void avancerProchainArret() {
    System.out.print("Ca roule. ");
  }
}

class TestVehicule {
  public static void main(String[] args) {
    Vehicule v = new Bus();
    v.avancer(5);
    Vehicule m = new Moto();
    System.out.println(m.getNombreRoues()+ " roues.");
    m.avancer(3);
  }

}
