Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3319 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Hériter de manière protected

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Hériter de manière protected

n°233990
El_gringo
Posté le 24-10-2002 à 17:00:44  profilanswer
 

Je voudrais créer une classe étendant File de manière protected, c'est à dire, je voudrais que les membres et attributs public de File ne soient accessibles que de manière protected dans ma classe Archive (qui étend File)
G essayé ça :
class Archive extends protected File
ça passe pas...
 
C'est possible en C++
Et en Java c pas possible ?

mood
Publicité
Posté le 24-10-2002 à 17:00:44  profilanswer
 

n°233992
darklord
You're welcome
Posté le 24-10-2002 à 17:02:36  profilanswer
 

bin si tu étends une classe tu l'étends tu ne modifies pas le père ...
 
donc si un attribut est public dans la classe mère il sera automatiquement public dans la classe fille


Message édité par darklord le 24-10-2002 à 17:02:51

---------------
Just because you feel good does not make you right
n°233995
El_gringo
Posté le 24-10-2002 à 17:05:52  profilanswer
 

DarkLord a écrit a écrit :

bin si tu étends une classe tu l'étends tu ne modifies pas le père ...
 
donc si un attribut est public dans la classe mère il sera automatiquement public dans la classe fille




 
...pas en C++
ça suit peut être pas les normes Objet, mais c bien pratique desfois.
Remarque, là ,j'me débrouille autrement, finalement ça fait un truc plus propre.
 
Merci. :hello:

n°233997
polyacetal
I was here
Posté le 24-10-2002 à 17:08:29  profilanswer
 

en fait, tu voudrais que l'utilisateur de ta classe archive n'est pas accès aux membres de la classes mère, ce qui par définition ne représente aucun intérêt de faire un héritage dont le but est de justement permettre à l'utilisateur d'une classe dérivée d'utilisé également les membres et fonctions de la classe mère  :non:  
 
si tu y tiens alors, autant laisser tomber l'héritage et avoir un attribut File dans ta classe archive et écrire des méthodes dans archive qui se contente d'appeler des méthodes de File.
 
 
 
 

n°234003
El_gringo
Posté le 24-10-2002 à 17:12:39  profilanswer
 

polyacetal a écrit a écrit :

en fait, tu voudrais que l'utilisateur de ta classe archive n'est pas accès aux membres de la classes mère, ce qui par définition ne représente aucun intérêt de faire un héritage dont le but est de justement permettre à l'utilisateur d'une classe dérivée d'utilisé également les membres et fonctions de la classe mère  :non:  
 
si tu y tiens alors, autant laisser tomber l'héritage et avoir un attribut File dans ta classe archive et écrire des méthodes dans archive qui se contente d'appeler des méthodes de File.




 
...ça s'défend
De toute façon je fais un truc complètement différent du coup.

n°234010
darklord
You're welcome
Posté le 24-10-2002 à 17:20:30  profilanswer
 

El_Gringo a écrit a écrit :

 
 
...pas en C++
ça suit peut être pas les normes Objet, mais c bien pratique desfois.
Remarque, là ,j'me débrouille autrement, finalement ça fait un truc plus propre.
 
Merci. :hello:  




 
arf arrête de nous rabattre avec le C++. Pq tu ne fais pas du C++ si tu n'arrêtes pas d'en parler hein  :heink:  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 [:titprem]  :hello:


---------------
Just because you feel good does not make you right
n°234021
El_gringo
Posté le 24-10-2002 à 17:31:55  profilanswer
 

DarkLord a écrit a écrit :

 
 
arf arrête de nous rabattre avec le C++. Pq tu ne fais pas du C++ si tu n'arrêtes pas d'en parler hein  :heink:  
 
 
 
 [:titprem]  :hello:  




 
Ha, ce que j'aime cette bonne humeur pérpétuelle, ta tolérance, ton sang froid... un vraie bouffée d'air pur dans ce monde sans tolérance ! Merci Dark  :hello:  
 
--> Plus sérieusement, j'ai fait 9 mois de C++, c normal que j'ai tendance à vouloir faire en Java certains trucs que je faisais en C++, tu crois pas ?
Cela dit, je préfère programmer en Java !

n°234067
benou
Posté le 24-10-2002 à 19:07:46  profilanswer
 

en fait tu peux élargir les droits d'accès par héritage (rendre public ou protected une classe privée, etc ...) mais pas l'inverse car sinon elle ne remplirait plus le contrat fixé par l'interface de la classe héritant.  
Ce serait contraire à la notion d'héritage.
D'ailleur ca m'étonne que le C++ permette ca. T'es sur de toi ?
 
Dans ton cas, ce n'est pas de l'héritage que tu dois faire mais de l'agrégation.
Quand on fait de l'héritage on étend les possibilitées on ne les restreint pas.

n°234080
bobuse
Posté le 24-10-2002 à 19:40:06  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Ha, ce que j'aime cette bonne humeur pérpétuelle, ta tolérance, ton sang froid... un vraie bouffée d'air pur dans ce monde sans tolérance ! Merci Dark  :hello:  
 
--> Plus sérieusement, j'ai fait 9 mois de C++, c normal que j'ai tendance à vouloir faire en Java certains trucs que je faisais en C++, tu crois pas ?
Cela dit, je préfère programmer en Java !




c'est marrant je pense que je faire la même chose (en inverse) quand je me remmetrai au C++ :D  :D

n°234296
El_gringo
Posté le 25-10-2002 à 09:35:47  profilanswer
 

benou a écrit a écrit :

en fait tu peux élargir les droits d'accès par héritage (rendre public ou protected une classe privée, etc ...) mais pas l'inverse car sinon elle ne remplirait plus le contrat fixé par l'interface de la classe héritant.  
Ce serait contraire à la notion d'héritage.
D'ailleur ca m'étonne que le C++ permette ca. T'es sur de toi ?
 
Dans ton cas, ce n'est pas de l'héritage que tu dois faire mais de l'agrégation.
Quand on fait de l'héritage on étend les possibilitées on ne les restreint pas.




 
Pas forcément.
La classe Properties, par exemple.
Bon, d'un côté, ça étend les possibilté de la hashtable (ça lui permet de s'écrire dans un fichier et d'en lire un), ms d'un autre côté, ça restreind les possibilités : il est très fortement déconseillé d'utiliser la méthode put (héritée de Hashtable), auquel cas on risquerai de mettre autre chose qu'une String ds cette Hashtable...

mood
Publicité
Posté le 25-10-2002 à 09:35:47  profilanswer
 

n°234298
benou
Posté le 25-10-2002 à 09:49:47  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Pas forcément.
La classe Properties, par exemple.
Bon, d'un côté, ça étend les possibilté de la hashtable (ça lui permet de s'écrire dans un fichier et d'en lire un), ms d'un autre côté, ça restreind les possibilités : il est très fortement déconseillé d'utiliser la méthode put (héritée de Hashtable), auquel cas on risquerai de mettre autre chose qu'une String ds cette Hashtable...




 
je vois pas le problème : rien ne t'empêche d'utiliser les méthodes de Hashtable avec un objet Properties...
 
c'est pas parce que c'est déconseillé que tu ne peux pas le faire.
 
La classe Properties est un bonne exemple de classe qui ne devrait pas utiliser l'héritage mais l'agrégation si ses concepteurs ne souhaitaient pas que l'on puisse utiliser les méthodes de la HashTable

n°234324
El_gringo
Posté le 25-10-2002 à 10:53:29  profilanswer
 

benou a écrit a écrit :

 
 
je vois pas le problème : rien ne t'empêche d'utiliser les méthodes de Hashtable avec un objet Properties...
 
c'est pas parce que c'est déconseillé que tu ne peux pas le faire.
 
La classe Properties est un bonne exemple de classe qui ne devrait pas utiliser l'héritage mais l'agrégation si ses concepteurs ne souhaitaient pas que l'on puisse utiliser les méthodes de la HashTable




 
Les ingénieurs de chez Sun seraient donc des incompétents ? :D

n°234327
darklord
You're welcome
Posté le 25-10-2002 à 10:54:22  profilanswer
 

El_Gringo a écrit a écrit :

 
 
Les ingénieurs de chez Sun seraient donc des incompétents ? :D  




 
ca c'est vraiment très drôle  :sarcastic:


---------------
Just because you feel good does not make you right
n°234473
benou
Posté le 25-10-2002 à 14:21:03  profilanswer
 

El_Gringo a écrit a écrit :

 
Les ingénieurs de chez Sun seraient donc des incompétents ? :D  




ils ont privilégié le pratique à la rigueur. C'est un choix.
 
Un peu comme classe Stack qui hérite de Vector : c'est complétement illogique et contraire mais peut être pratique dans certains cas...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Hériter de manière protected

 

Sujets relatifs
[PHP] Meilleure manière de poster des articles sur un site[PHP]Afficher un tableau de manière sophistiquée (à la excel)
[PHP] manière légère de ne pas perdres les champs lorsque submitSQL : Exporter de maniere automatique la BDD
SAMBA Question sur la maniere qu'un client SAMBA envoie le USER&PASS[Oracle] [SQL] Récupérer des lignes de manière aléatoire ?
[PHP & autres]Passer une URL en parametre d'une certaine manière 
Plus de sujets relatifs à : Hériter de manière protected


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)