Bonjour, j'ai une class Document que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
public class Document {
	 private int numero;  
	 private String titre;      
	 //Constructers   
	 public Document(int numero, String titre) {  
		this.numero=numero;
		this.titre=titre;
	}       //gets  
 
	 public int getNumero() {      
		 return numero;
	}   
 
	 public String getTitre() {   
		 return titre;
	}
	 //Expliquer le code de cette méthode  
 
	public boolean equals(Object obj) {   
		return obj instanceof Document && ((Document) obj).numero == numero;  
	}  
 
	public String toString() {     
		return titre + " Numéro :  " + numero; 
	}
}
A partir de celle ci je me suis servi de l'heritage pour creer une class Livre que voici:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class Livre extends Document{
	private String auteur;
	private int nombrePages;
 
	public Livre(int numero, String titre, String auteur, int nombrePages){
		super(numero,titre);
		this.auteur=auteur;
		this.nombrePages=nombrePages;
	}
 
	public String getAuteur(){
		return auteur;<code></code>
	}
 
	public int getNombrePages(){
		return nombrePages;
	}
 
	public String toString(){
		return super.toString()+" Auteur: "+auteur+" Nombre de pages: "+nombrePages;
	}
 
}
Ce faisant, je crée une class Bibliotheque qui va me permettre de simuler l'ajout ou suppression de documents dans celle ci. Le probleme est que j'ai une methode afficherAuteur qui est censéé afficher les auteurs de tous les documents tant que ces documents sont de type Livre, car ce sont les seuls a avoir l'attribut auteur (j'ai créé d'autre class Revue..), or je n'arrive pas a faire appel a la methode getAuteur de la class Livre.

Ainsi:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
public class Bibliotheque {
	//Attributs  
	private Vector<Document> documents;
	//Constructeurs  
	public Bibliotheque(){  
		documents= new Vector<Document>();
	}   
	//Affichage de tous les documents de la bibliothèque  
	public void afficherDocuments(){ 
		for(int i=0;i<documents.size();i++){
			System.out.println(documents.get(i).toString());
		}
	}  
	//Afficher tous les auteurs de la bibliothèque.  //Attention, seuls les documents de type Livre et Roman possèdent des auteurs  
	public void afficherAuteurs(){  
		for(int i=0;i<documents.size();i++){
			if(documents.get(i) instanceof Livre) System.out.println((Livre) documents.get(i).getAuteur()); 
		}
	}
	//fin afficherAuteurs    //Supprimer un document de la collection de documents  
	public boolean supprimer(Document doc){  
		return(documents.remove(doc));
	}    
	//Ajouter un document
	public boolean ajouter(Document doc){  
		return(documents.add(doc));
	}
	//Obtenir le document à l'indice i  
	public Document getUnDocument(int i){ 
		return (documents.get(i));
	}  
 
}
Merci d'avance pour votre aide