Aller au contenu

Les Classes Abstraites Java


Homeomorphe

Messages recommandés

 Classes abstraites


Nota Bene : pour ce cours je prend comme hypothèse que vous avez déjà des bases de Java, le cas échéant, allez lire les cours présents dans la section 'tutoriels'.

 

Le concept de classe abstraite se situe entre celui de classe et celui d’interface (notion que j'introduirai plus tard, selon moi c'est plus simple de commencer par les classes abstraites). C’est donc une classe qu’on ne peut pas directement instancier car certaines de ses méthodes ne sont pas implémentées. Une classe abstraite peut donc contenir des variables (de n'importe quel type, primitif ou non), des méthodes implémentées et des signatures de méthode à implémenter. Une classe abstraite peut donc implémenter (partiellement ou totalement, même s'il est rare que ce le soit totalement) des interfaces et peut hériter d’une classe ou d’une classe abstraite. La création d'une classe abstraite se fait de la sorte : public abstract class { … }.  Imaginons que l’on souhaite attribuer deux variables, origine_x et origine_y, à tout objet représentant une forme nous avons donc la classe suivante avec les 'Getter' et les 'Setter' comme suit :
 

public abstract class Forme { private int origine_x; private int origine_y;
// Constructeur dit 'par défaut'
public Forme() { this.origine_x = 0; this.origine_y = 0; }
// Getter
public int getOrigineX() { return this.origine_x; }
public int getOrigineY() { return this.origine_y; }
// Setter
public void setOrigineX(int x) { this.origine_x = x; }
public void setOrigineY(int y) { this.origine_y = y; }
// Méthodes abstraites
public abstract int surface();
public abstract void affiche();}

 

- Classes et méthodes génériques :

 

De plus, il faut rétablir l’héritage des classes Rectangle et Cercle vers Forme (car les rectangles et les cercles sont des formes ;) , et si vous avez bien suivi votre cours sur l'héritage, on utilise le mot-clé 'extends' (toutefois il en existe un autre qui pour les interfaces appelées 'implements' qui fait strictement la même chose, j'en parlerai dans un prochain cours!)

// Classe Rectangle qui étend forme
public class Rectangle extends Forme { ... }
// Classe Cercle qui étend forme
public class Cercle extends Forme { ... }


Lorsqu’une classe hérite d’une classe abstraite, elle doit :

- soit implémenter les méthodes abstraites de sa super-classe en les dotant d’un corps ;

- soit être elle-même abstraite si au moins une des méthodes abstraites de sa super-classe reste abstraite. 

 

Fin de ce premier cours. 

Cordialement,

Homéo

  • J'adore 2
Lien vers le commentaire
il y a 21 minutes, Calypso a dit :

Excellent tutoriel, merci à toi !

Il est vrai que c'est un concept assez compliqué à assimiler la première fois mais c'est indispensable pour faire les choses correctement. Et c'est fort utile parfois

 

Merci encore :D

 

 

Avec plaisir.

En effet quand une chose est abstraite c’est tout de suite plus dur à assimiler. :/ 

 

Homéo’

Lien vers le commentaire
  • 5 months later...
  • ASIKOO changed the title to Les Classes Abstraites Java

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


×
×
  • Créer...

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.