Précision, tu ne peut pas instancier une classe abstraite.
(Enfin oui mais c'est pas encore de ton niveau, tu verras ça plus tard avec les lambda)
Ça peut ressembler à ça:
1 2 3
| public abstract class Forme {
public abstract void afficher();
} |
1 2 3 4
| public class Cercle extends Forme{
@Override
public void afficher() { System.out.println("Cercle"); }
} |
1 2 3 4
| public class Segment extends Forme{
@Override
public void afficher() { System.out.println("Segment"); }
} |
public class Image extends ArrayList<Forme>{ }
Il ne te reste plus qu'a faire l’implémentation.
Je veux bien t'expliquer ce que tu n'as pas compris mais soit plus précis.
Tu n'as pas compris ce qu'est une classe?
Tu n'as pas compris ce qu'est une classe abstraite?
Tu n'as pas compris ce qu'est une implémentation?
Tu n'as pas compris à quoi sert une classe?
Tu n'as pas compris ce que veux dire le code?
Tu n'as pas compris à quoi sert l'héritage?
Tu n'as pas compris à quoi sert une classe?
En attendant je te fait un petit débrif:
Lorsque tu veux fabriquer un objet IRL par exemple en plâtre (code JAVA) tu fabrique un moule (une classe) que tu remplis avec ton plâtre (implémentation) puis tu démoule ton objet (ta variable).
Pour tout ce qui est abstrait, comme les classes abstraites et les interfaces, et c'est le cas aussi pour l'héritage en général, il faut comprendre à quoi ça sert pour saisir le truc.
Imaginons un panier de légumes (ArrayList).
Tous ne servent pas à la même chose mais ils sont dans le même panier.
Sans héritage, je suis obligé d’analysé le légume avant de l'utiliser.
Exemple rapide:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class Legume{
public static final int COURGETTE = 1;
public static final int PATATE = 2;
public int type = 0;
private void utiliser(){
if(type == COURGETTE){
utiliserCourgette();
}else if(type == PATATE){
utiliserPatate();
}
}
private void utiliserCourgette(){
System.out.println("COURGETTE");
}
private void utiliserPatate(){
System.out.println("PATATE");
}
} |
Avec l'héritage... regarde le code que je t'ai envoyer au début.
Tu fous tout dans le même panier alors que les objets sont différant et pour les utiliser tu appel la fonction mère qui est la même pour tous.
C'est plus économe en ressources est ça compartimente le code pour le rendre plus lisible.
Partager