Héritage de classe

création de la classe ChienSavant3
sous-classe de Chien3

Source de Chien3.java
public class Chien3 {
  static String aboiementClassic="wouah!";
  String nom, aboiement;
  int nombrePuce;
  Chien3() {
    nom = "indéfini";
    nombrePuce = 0;
    aboiement = aboiementClassic;
  }
  Chien3(String s) {
    this();
    nom = s; 
  }
  Chien3(String s1, int i, String s2) {
    nom = s1; 
    nombrePuce = i;
    aboiement = s2;
  }
  static void nouvelleRace(String s) {
    aboiementClassic=s;
  }
  void aboie() {
    System.out.println(aboiement);
  }
  void aboie(int fois) {
    for (int i=0; i<fois; i++)
      aboie();
  }
}
Source de ChienSavant3.java
public class ChienSavant3 
       extends Chien3 {
  ChienSavant3(String s, int i) {
    nom = s; 
    nombrePuce = i;
    System.out.println("un nouvel ami "
                  + nom + " savant !");
  }
  void compte() {
    aboie(nombrePuce);
  }
}

Source de Prog43.java
public class Prog43 {
  public static void main (String args[]) {
     ChienSavant3 milou;
     milou = new ChienSavant3("milou", 5);
     milou.aboie(3);
     milou.compte();
  }
}

redéfinition de méthode dans une sous-classe

Source de Rectangle4.java
public class Rectangle4 {
  double x, y, largeur, hauteur;
  Rectangle4() {
    x = 0; 
    y = 0; 
    largeur = 0;
    hauteur = 0;   
  }
  Rectangle4(double valX, double valY,
             double valL, double valH) {
    x = valX; 
    y = valY; 
    largeur = valL;
    hauteur = valH;   
  }
  double surface() {
    return largeur * hauteur;
  }
  double perimetre() {
    return 2*(largeur + hauteur);
  }
}

Source de Carre4.java
public class Carre4 
       extends Rectangle4 {
  Carre4(double valX, double valY,
         double valCote) {
    x = valX; 
    y = valY; 
    largeur = valCote;
    hauteur = valCote;   
  }
  double surface() {
    return Math.pow(largeur, 2);
  }
  double diagonale() {
    return largeur * Math.sqrt(2);
  }
}

Source de Prog35.java
public class Prog35 {
  public static void main (String args[]) {
     Carre4 c;
     c = new Carre4(40,40,100);
     System.out.println("surface de c : "
                        +c.surface());
     System.out.println("perimetre de c : "
                        +c.perimetre());
     System.out.println("diagonale de c : " 
                        +c.diagonale());     
  }
}

sous-classe avec nouvel attribut

Source de ChienDeCirque3.java
public class ChienDeCirque3 
             extends ChienSavant3 {
  String nomDeScene;
  ChienDeCirque3(String nomChien, String nomDeScene) {
    super(nomChien, 0);
    /* un chien de cirque n'a pas de puce car
      au cirque elles sont magiciennes ! */
    nomDeScene = nomDeScene; 
  }
  void aboie() {
    System.out.println(aboiement+" Applaudissez !");
  }
}
Source de Prog109.java
public class Prog109 {
  public static void main (String args[]) {
     ChienDeCirque3 milou;
     milou = new ChienDeCirque3("milou", "milor");
     milou.aboie(3);
  }
}

 

héritage

exercice