// MODULE: Heritage.java // AUTEUR: felipe // OBJET: Derniers points sur l'heritage // COMMENT: code completement inutile // les classes abtraites // NOTE: le mot cle en debut de classe est // obligatoire car il existe au moins une // methode abstraite abstract class Mere { public int uneFonction() {return 1;} public abstract int uneAutre(); //private abstract int uneAutre3(); //public abstract int uneAutre2(); } class Fille extends Mere { public int uneAutre() {return 2;} // erreur: int uneAutre2() {return 2;} } // les interfaces interface MonInterface { int MACONSTANTE = 10; abstract public int compareTo(Object objet); } interface MonInterface2 extends MonInterface { int uneFonction(); // public abstract implicite } class Fille2 implements MonInterface2 { // NOTE: public indispensable ici public int compareTo(Object objet) { return this.toString().compareTo(objet.toString()); } public int uneFonction() {return 3;} } public class Heritage { public static void main(String args []) { Mere ref; // le code suivant est une erreur // ref = new Mere(); ref = new Fille(); // polymorphisme ref.uneAutre(); ref.uneFonction(); Fille2 fille = new Fille2(); fille.compareTo(ref); int i = fille.MACONSTANTE; i = fille.uneFonction(); } }