/*
* Base.java
*
* @author Peter DAEHNE
* @version 0
*
* Classe de base, version 0
*/
public class Base {
private void pInc (Entier x) {x.val++;}
public void inc (Entier x) {pInc(x);}
private void pAdd1 (Entier x) {x.val += 1;}
public void add1 (Entier x) {pAdd1(x);}
{System.out.println("Version 0 de la classe de base");}
}// Base
/*
* SubClass.java
*
* @author Peter DAEHNE
* @version 0
*
* Classe dérivée: on observe que inc() a même effet que add1()
*/
public class SubClass extends Base {
public void inc (Entier x) {this.add1(x);}
}// SubClass
/*
* Application.java
*
* @author Peter DAEHNE
* @version 0
*
* Fonctionne correctement avec les deux versions de la classe de base, les
* méthodes étant encapsulées par des accesseurs
*/
public class Application {
public static void main (String[] args) {
Base c = new SubClass();
Entier x = new Entier(); x.val = 0;
System.out.println("Valeur initiale: " + x.val);
System.out.print("En ajoutant 1, on obtient: "); c.inc(x); System.out.println(x.val);
System.out.println("Fin du test de SubClass");
}// main
}// Application
/*
* Base.java
*
* @author Peter DAEHNE
* @version 1
*
* Classe de base, version 1: on observe que add1() a même effet que inc()
*/
public class Base {
private void pInc (Entier x) {x.val++;}
public void inc (Entier x) {pInc(x);}
public void add1 (Entier x) {pInc(x);}
{System.out.println("Version 1 de la classe de base");}
}// Base