Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
poo:start [2017/08/07 21:44]
admin [Héritage]
poo:start [2017/08/08 07:54] (Version actuelle)
admin [MVC (Modèle - Vue - Contrôleur)]
Ligne 15: Ligne 15:
  
 ===== Héritage ===== ===== Héritage =====
-  * Polymorphisme +  * [[Substitution]] (Redéfinition) 
-  * Rédéfinition +  * [[Surcharge]] (Polymorphisme ad-hoc)
-  * Surcharge+
   * [[Classes abstraites]]   * [[Classes abstraites]]
 +
 +**Exemple d'​héritage avec une ville (classe mère) et une capitale (classe fille)**
  
 <​code>​ <​code>​
Ligne 82: Ligne 83:
   //Retourne la description de la ville   //Retourne la description de la ville
   public String decrisToi(){   public String decrisToi(){
-    return ​"​\t"​+this.nomVille+"​ est une ville de "​+this.nomPays+ ", elle comporte : "​+this.nbreHabitants+"​ habitant(s) => elle est donc de catégorie : "​+this.categorie;​+    return this.nomVille+"​ est une ville de "​+this.nomPays+ ", elle comporte : "​+this.nbreHabitants+"​ habitant(s) => elle est donc de catégorie : "​+this.categorie;​
   }   }
  
Ligne 136: Ligne 137:
  
 <​code>​ <​code>​
-class Capitale extends Ville {+public ​class Capitale extends Ville { 
 +     
   private String monument;   private String monument;
- +     
 +  //​Constructeur par défaut
   public Capitale(){   public Capitale(){
-    //Ce mot clé appelle le constructeur de la classe mère  +    //Ce mot clé appelle le constructeur de la classe mère
     super();     super();
     monument = "​aucun";​     monument = "​aucun";​
-  }  +  }     
 +       
 +  //​Constructeur d'​initialisation de capitale 
 +  public Capitale(String nom, int hab, String pays, String monument){ 
 +    super(nom, hab, pays); 
 +    this.monument = monument; 
 +  }     
 +      
 +  /** 
 +    * Description d'une capitale 
 +    * @return String retourne la description de l'​objet 
 +  */
   public String decrisToi(){   public String decrisToi(){
-    String str =  super.decrisToi() + "\n \t ==>>"​ + this.monument+ " en est un monument";​ +    String str = super.decrisToi() + "\n \t ==>>"​ + this.monument + "en est un monument";​ 
-    ​System.out.println("​Invocation de super.decrisToi()"​);​ +
-    ​+
     return str;     return str;
-   }+    }  
 + 
 +  /** 
 +    * @return le nom du monument 
 +  */ 
 +  public String getMonument() { 
 +    return monument; 
 +  }  
 + 
 +  //Définit le nom du monument 
 +  public void setMonument(String monument) { 
 +    this.monument = monument; 
 +  ​  ​
 } }
 </​code>​ </​code>​
 +<WRAP center round important 60%>
 +Dans la plupart des langages de programmation récents, il n'est possible d'​hériter que d'une seule classe mère. Il faut donc utiliser les [[poo:​interfaces|interfaces]] pour répondre au mieux à l'​architecture.
 +</​WRAP>​
 +
  
  
Ligne 160: Ligne 188:
   * [[Interfaces]]   * [[Interfaces]]
  
-===== MVC (Modèle - Vue - Contrôleur) ===== 
  
 +
 +===== Tests unitaires =====
 +FIXME https://​openclassrooms.com/​courses/​programmez-en-oriente-objet-avec-c/​les-tests-unitaires-5
 +
 +
 +
 +===== MVVC (Modèle - Vue - Vue/​Contrôleur) =====
 +FIXME