/* * 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