Java multi héritage

SW92 Messages postés 8 Statut Membre -  
ElementW Messages postés 5690 Statut Contributeur -
Comment fait t on pour qu'une classe puisse hérité de deux autres classes ?
A voir également:

2 réponses

ElementW Messages postés 5690 Statut Contributeur 1 224
 
'lut, ce n'est pas possible: Java ne supporte pas l'héritage multiple (à l'instar du C++ par exemple).
En revanche, il y a les Interfaces qui sont là pour combler une partie de ce manque.
Et au passage, la politesse, c'est une chose a ne pas oublier. Pas bonjour, pas merci...
from human import idiocy
del idiocy
2
SW92 Messages postés 8 Statut Membre 1
 
Merci et excusez moi pour l'oubli
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

Pour compléter, depuis Java 8 les interfaces ont des méthodes par défaut, donc on peut enrichir l'héritage multiple d'interfaces en Java en implémentant plusieurs interfaces avec des méthodes par défaut, qui peuvent être potentiellement totalement implémentées.
Evidemment, ce n'est pas magique, et si on implémente deux interfaces qui ont deux méthodes par défaut de même signature, alors elles s'annulent, il faudra donc implémenter la méthode en conflit (en utilisant éventuellement une combinaison des méthodes en conflits)

NB. "à l'instar du C++" j'imagine que tu voulais dire "à l'encontre du C++"... car C++ supporte l'héritage multiple (avec bien sûr quelques contraintes pour les conflits).
0
ElementW Messages postés 5690 Statut Contributeur 1 224
 
@KX: oups, mon français m'échappe :-° ... Je voulais en effet dire "à l'encontre du C++".
0
SW92 Messages postés 8 Statut Membre 1
 
Bnjr Merci pour votre Réponse et j m'excuse pour l'oubli.

Je travail sur l programme sur le programme suivant:

public class Chanteur extends Personne{ 

 private String maisonEdition;
 private String titres [];
 private int nbTitres;

 public Chanteur(String prenom, String nom, int age) {
  super(prenom, nom, age,"Chanteur");
  this.titres= new String [10];   
  }

 public String sePresenter (){
  System.out.println ("Appel sePresenter Chanteur");
  return super.sePresenter() +" et je suis Chanteur";
  }

 public void setEdition (String maisonEdition){ 
  this.maisonEdition= maisonEdition;
  }

 public String getEdition(){ 
  if (maisonEdition!=null)
  return "Le nom de la maison d'édition de "+this.getNom()+" est "+this.maisonEdition;
  else
   return " ";
  }

 public void ajouterTitre(String titre){ 
  if (nbTitres<10)
   this.titres[nbTitres++]=titre;
  else
   System.out.println("Ce Chanteur à déja 10 titres");
  }

 public void afficherTitres (){
  int k;
  System.out.println("Le(s) titre(s) créé(s) par "+this.getNom()+" est(sont) : ");
  for (k=0;k<this.nbTitres;k++)
   System.out.println(titres[k]);
  }
 }

Et maintenant on me demande de Créer une classe Disque (titre, date de création, nombre d'exemplaire vendu) pour changer le tableau titres, le rendre dynamique.

Merci d'avance
1
KX Messages postés 19031 Statut Modérateur 3 020
 
Et quel rapport avec de l'héritage multiple ? La classe Disque hérite de Chanteur !!?
0
SW92 Messages postés 8 Statut Membre 1
 
C'est vrai que ma question est un peut ambigu. C'est Chanteur qui utilise Disque mais comme vous me l'avez signaler l'héritage multiple n'est pas possible sous Java. Donc je souhaiterai savoir par quel moyen pouvons nous faire cela ?
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Je ne vois toujours pas le rapport, ce n'est pas de l'héritage et encore moins de l'héritage multiple...

private Disque[] disques;

public void ajouterDisque(Disque disque) {
   ...
0
SW92 Messages postés 8 Statut Membre 1 > KX Messages postés 19031 Statut Modérateur
 
Ok Merci je vais essayer avec cela
0