OVH Cloud OVH Cloud

Classe abstraite??

1 réponse
Avatar
pascal.brillard
Bonjour,

je fais en ce moment un casse brique et j'ai besoin pour cela de lire un
fichier dans une sous classe qui hérite Objet. Or je sais que le lecture de
fichier ne peut se faire qu'au niveau de la définition de l'applet mais je
ne veux pas faire cela, car ce n'est pas propre à mon gout...

j'ai entendu parlé d'une classe abstraite? Est-ce qu'il faut utiliser? Où
est-ce que je peux trouver une bonne doc dessus?

Merci d'avance

Pascal

1 réponse

Avatar
oliv
pascal.brillard wrote:
je fais en ce moment un casse brique et j'ai besoin pour cela de lire un
fichier dans une sous classe qui hérite Objet. Or je sais que la lecture de
fichier ne peut se faire qu'au niveau de la définition de l'applet mais je
ne veux pas faire cela, car ce n'est pas propre à mon gout...
Bonjour,

je ne suis pas certain de comprendre. Pourquoi une classe qui fait
partie de l'applet ne pourrait-elle pas faire d'I/O ? S'ils sont
nécessaires, les droits sont alloués au JAR. Hors restrictions de
sécurité, toute classe peut bien sûr faire des I/O comme elle veut.

j'ai entendu parler d'une classe abstraite? Est-ce qu'il faut utiliser? Où
est-ce que je peux trouver une bonne doc dessus?
Par ailleurs, une classe abstraite c'est une classe dont au moins une

méthode n'est pas définie mais sera implémentée (un peu comme pour une
interface) par une sous classe. De ce fait, une telle classe ne pourra
pas être instanciéee (on ne peut pas créer d'objet de cette classe)
car elle n'est pas entièrement définie. Cette notion présente un
intérêt pour "mettre en facteur commun" une fonctionnalité
indépendamment de son effet particulier dans chaque classe fille.

Un exemple horticole : toutes les Fleur ont une méthode
nombrePetales() mais son implémentation est différente dans les
classes Marguerite et Jonquille.

Plus utile : voir la hiérarchie qui part de AbstractList par exemple.

Une classe abstraite "Lisable" pourrait être utile pour mettre en
facteur la méthode de lecture si elle est commune à plusieurs
sous-classes mais, sauf erreur ou mécompréhension de ma part, ce n'est
pas ce choix de design qui va permettre de faire des I/O.

Voir par exemple
http://java.sun.com/docs/books/tutorial/java/TOC.html#javaOO
Classes and Inheritance
Managing Inheritance
Writing Abstract Classes and Methods

--
oliv