Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites
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’

Partager ce message


Lien à poster
Partager sur d’autres sites

Je commence à m'attaquer au java, merci pour ces explications ! :D

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 8 heures, Kijaru a dit :

Je commence à m'attaquer au java, merci pour ces explications ! :D

 

Bon courage à toi ! :) 

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.