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

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Question bête sur le double héritage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Question bête sur le double héritage

n°786416
freewol
Ceci n'est pas une citation
Posté le 04-07-2004 à 21:47:38  profilanswer
 

Je voulais savoir s'il existe une solution astucieuse pour éviter le double héritage, que j'ai malheureusement l'habitude d'utiliser venant du C++.
 
Par exemple j'ai une classe Objet, une classe ObjetPositionné qui dérive d'Objet, une classe Robot qui dérive d'Objet et une classe RobotPositionné qui dérive de Robot et de ObjetPositionné, une classe Mur qui dérive d'Objet et une classe MurPositionné qui dérive de Mur et d'ObjetPositionné.
 
Comment feriez-vous ça en java ?

mood
Publicité
Posté le 04-07-2004 à 21:47:38  profilanswer
 

n°786419
raytaller
Posté le 04-07-2004 à 21:54:39  profilanswer
 

L'héritage multiplie comme il existe en C++ n'existe pas en Java.
En java, on fait de l'héritage multiple avec des contrats : les classes implémentent des interfaces (autant que tu veux) et héritent d'une seule classe uniquement.
 
Quand tu implémente une interface, tu dois forcément refaire l'implémentation toi même.
 
Il est fortement conseillé d'utiliser la composition plutôt que l'héritage quand c'est possible.

n°786420
freewol
Ceci n'est pas une citation
Posté le 04-07-2004 à 21:58:39  profilanswer
 

Désolé si c'est encore une question bête, mais qu'entends-tu par composition ?

n°786425
the real m​oins moins
Posté le 04-07-2004 à 22:10:18  profilanswer
 

Machin HAS A Truc au lieu de Machin IS A Truc


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°786431
Taz
bisounours-codeur
Posté le 04-07-2004 à 22:12:56  profilanswer
 

raytaller a écrit :

Il est fortement conseillé d'utiliser la composition plutôt que l'héritage quand c'est possible.

c'est pas comme si tu avais le choix en fait

n°786475
benou
Posté le 04-07-2004 à 22:44:22  profilanswer
 

Tu peux assez facilement faire comme de l'héritage multiple en passant par un système de wrapper (cf le Design pattern correspondant) ...
 
mais ca oblige à écrire les méthodes de délégations ...
avec un bon IDE ca se fait vite ;)

n°786479
the real m​oins moins
Posté le 04-07-2004 à 22:45:28  profilanswer
 

d'ou il sort le nom de ton DP ? :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°786484
Taz
bisounours-codeur
Posté le 04-07-2004 à 22:48:38  profilanswer
 

benou a écrit :

Tu peux assez facilement faire comme de l'héritage multiple en passant par un système de wrapper (cf le Design pattern correspondant) ...
 
mais ca oblige à écrire les méthodes de délégations ...
avec un bon IDE ca se fait vite ;)

t'auras beau essayé, tu arrivera jamais a une relation ISA

n°786486
the real m​oins moins
Posté le 04-07-2004 à 22:49:44  profilanswer
 

et c'est tant mieux [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°786489
Taz
bisounours-codeur
Posté le 04-07-2004 à 22:51:18  profilanswer
 

on peut troller ? (enfin continuer du moins ?)

mood
Publicité
Posté le 04-07-2004 à 22:51:18  profilanswer
 

n°786492
benou
Posté le 04-07-2004 à 22:55:06  profilanswer
 

Taz a écrit :

on peut troller ?


comme si t'avais attendu d'avoir une permission [:kiki]

n°786493
benou
Posté le 04-07-2004 à 22:55:07  profilanswer
 
n°786495
nraynaud
lol
Posté le 04-07-2004 à 22:58:56  profilanswer
 

on peut troller orthographe au lieu de répéter des conneries qui ont déjà été dite 100 fois ? Les C++eux n'ont pas à venir faire chier les javateux, puisqu'ils sont incapables de changer leurs méthodes d'analyse et de modélisation, de simplifiers leurs modèles, qu'ils restent dans leur merde.
 
 
JAVA C'EST UN LANGAGE D'INTéGRISTES ET DE GROS CONS? IL FAUT PAS L'APPRENDRE.
 
si ça pouvait dégager quelques boulets pour qu'on puisse avancer un peu.

n°786513
Taz
bisounours-codeur
Posté le 04-07-2004 à 23:15:30  profilanswer
 

Citation :

Les C++eux n'ont pas à venir faire chier les javateux, puisqu'ils sont incapables de changer leurs méthodes d'analyse et de modélisation, de simplifiers leurs modèles, qu'ils restent dans leur merde.


 
et vice et versa (sic)
 
ce n'est pas parce que tu t'interdis quelque chose qu'il faut l'interdire aux autres. et quand on voit la tronche du DP (et le résultat chiatique), ose redire (bon je sais tu vas le redire, c'est purement rhétorique) que dans des cas naturels, l'héritage multiple est le modèle le plus complexe ? d'ailleurs complexe ne veut pas dire compliqué :D
 
 
mais on peut effectivement parler orthographe
sur ce je d/l Farenheit 911 de M.Moore
https://linuxfr.org/~grad/14381.html
le torrent marche bien.

n°788361
pascal34
one point !
Posté le 06-07-2004 à 17:44:53  profilanswer
 

L'héritage multiple n'est pas une mauvaise chose en soi.
Tout dépend de l'utilisation qu'on en fait.
 
Les design patterns sont bien. Ca permet d'accélerer les développements relatifs à certains problème réccurents en programmation, mais si on en met partout c'est l'effet inverse qui se produit !!!
 
Il faut savoir user des choses sans en abuser.
 
Je tiens à rappeler qu'en java rien n'interdit de tout coder dans l'unique méthode main d'une unique classe Comme un sale porc !!

n°788364
nraynaud
lol
Posté le 06-07-2004 à 17:47:11  profilanswer
 

pascal34 a écrit :

Les design patterns sont bien. Ca permet d'accélerer les développements relatifs à certains problème réccurents en programmation, mais si on en met partout c'est l'effet inverse qui se produit !!!

tiens, une fortune !

n°788410
HelloWorld
Salut tout le monde!
Posté le 06-07-2004 à 18:15:57  profilanswer
 

Il ne faut pas se demander comment programmer en C++ avec Java, mais comment est l'approche Java pour un problème donné.
 


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°788416
chrisbk
-
Posté le 06-07-2004 à 18:26:10  profilanswer
 

nraynaud a écrit :

on peut troller orthographe au lieu de répéter des conneries qui ont déjà été dite 100 fois ? Les C++eux n'ont pas à venir faire chier les javateux, puisqu'ils sont incapables de changer leurs méthodes d'analyse et de modélisation, de simplifiers leurs modèles, qu'ils restent dans leur merde.
 


 
désolé c'est l'habitude d'utiliser l'heritage multiple sous eiffel [:itm]
 
(t'es bien ennuyé la, hein ? [:itm])

n°788511
freewol
Ceci n'est pas une citation
Posté le 06-07-2004 à 20:29:30  profilanswer
 

HelloWorld a écrit :

Il ne faut pas se demander comment programmer en C++ avec Java, mais comment est l'approche Java pour un problème donné.


 
Bah j'ai demandé pour un problème donné, d'ailleurs si tu pouvais me dire comment tu ferais pour ce problème ça pourrait bien m'aider :jap:

n°788567
- Renaud -
Posté le 06-07-2004 à 22:33:54  profilanswer
 

Je m'insurge !!!
 
L'héritage multiple existe en Java... ou au moins double
 
Je m'explique (ca fait longtemps que j'ai pas pondu du code, alors il faudra savoir adapter...)
 

Code :
  1. public class A {
  2.    public String toto() { return "toto"; }
  3. }
  4. public class B {
  5.    public String titi() { return "titi"; }
  6.    public class C extends A {
  7.       public String tototiti() { return toto()+titi(); }
  8.    }
  9. }
  10. public class D extends B.C {
  11. }
  12. public class Test {
  13.    static void main(String[] args) {
  14.       D d = new D();
  15.       d.toto();
  16.       d.titi();
  17.    }
  18. }


 
qq chose comme ça doit marcher, mais c'est méga porc...
 
C'est basé sur le fait qu'une inner class hérite de la outer class et peut aussi étendre une autre class.
 
Je crois me souvenir que C et D doivent être bidouillées pour que ça marche...

n°788568
the real m​oins moins
Posté le 06-07-2004 à 22:41:19  profilanswer
 

euh oui et donc D étends A, c'est super.
et ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°788585
nraynaud
lol
Posté le 06-07-2004 à 23:00:40  profilanswer
 

- Renaud - a écrit :


C'est basé sur le fait qu'une inner class hérite de la outer class

et la marmotte ? elle a eu une promotion et elle fait dans l'emballage plastique maintenant ?
 
Tu viens de gagner un voyage dans le JLS gratos.

n°788596
Jubijub
Parce que je le VD bien
Posté le 06-07-2004 à 23:39:33  profilanswer
 

[:drapo], popcorn, chaise longue...
 
Les trolls java ? Jamais sans mon pop corn
 
Les interfaces c plus verbeux que l'héritage multiple surement, mais un bon IDE comble le vide rapidement...


---------------
Jubi Photos : Flickr - 500px
n°788683
chrisbk
-
Posté le 07-07-2004 à 01:59:50  profilanswer
 

oué enfin dans l'absolu je ne sais pas si c'est une bonne politique de miser sur l'ide pour contourner une limitation du langage

n°788690
the real m​oins moins
Posté le 07-07-2004 à 02:15:09  profilanswer
 

tout à fait.
mieux vaut miser sur un design propre.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°788706
Taz
bisounours-codeur
Posté le 07-07-2004 à 07:37:04  profilanswer
 

the real moins moins a écrit :

tout à fait.
mieux vaut miser sur un design propre.

pas fatigué de dire que l'héritage multiple c'est sale ?

n°788709
nevin0u
Posté le 07-07-2004 à 08:04:05  profilanswer
 

the real moins moins a écrit :

tout à fait.
mieux vaut miser sur un design propre.


 
++

n°788729
Jubijub
Parce que je le VD bien
Posté le 07-07-2004 à 08:50:55  profilanswer
 


 
C++  [:aloy]  
 
 
--->  [:cupra] [:jesorsv]
 
 
de tt façon je vois pas l'intéret de la discussion, sachant qu'on est face à deux philosophies de devel incompatibles, qui s'inscrivent chacune dans la logique de leurs langages respectifs...et qui sont incompatibles...
 
je me demande comment ca vous fatigue pas ce genre de discussions..c tjs les mêmes, avec les mêmes arguments poilus, les même smileys...rassurez moi vous faites du copier coller d'un vieux topic au nouveau ???


---------------
Jubi Photos : Flickr - 500px
n°788765
HelloWorld
Salut tout le monde!
Posté le 07-07-2004 à 09:51:18  profilanswer
 

Pourquoi incompatible ? Les ABC c'est pas nouveau en C++, et elles ont leur place.
http://www.artima.com/intv/modern.html


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°788785
nraynaud
lol
Posté le 07-07-2004 à 10:06:36  profilanswer
 

chrisbk a écrit :

désolé c'est l'habitude d'utiliser l'heritage multiple sous eiffel [:itm]
 
(t'es bien ennuyé la, hein ? [:itm])

je vois pas le rapport.
1) comparer l'héritage multiple en Eiffel et dans les autres langages ... bon ben voilà quoi ...
2)  l'héritage multiple en eiffel me fout un gros doute. Puet-être une fois de temps en temps pour récupérer du code sans se fatiguer ("marriage d'intérêt" selon Meyer) mais comme design, je doute.

n°788804
gilou
Modérateur
Modzilla
Posté le 07-07-2004 à 10:20:52  profilanswer
 

Taz a écrit :

[quote]
mais on peut effectivement parler orthographe
sur ce je d/l Farenheit 911 de M.Moore
https://linuxfr.org/~grad/14381.html
le torrent marche bien.


 
Pour un peu je sanctionnais, mais vu que Moore a l'air d'accord...
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°788809
gilou
Modérateur
Modzilla
Posté le 07-07-2004 à 10:23:29  profilanswer
 

Jubijub a écrit :

C++  [:aloy]  
 
 
--->  [:cupra] [:jesorsv]
 
 
de tt façon je vois pas l'intéret de la discussion, sachant qu'on est face à deux philosophies de devel incompatibles, qui s'inscrivent chacune dans la logique de leurs langages respectifs...et qui sont incompatibles...
 
je me demande comment ca vous fatigue pas ce genre de discussions..c tjs les mêmes, avec les mêmes arguments poilus, les même smileys...rassurez moi vous faites du copier coller d'un vieux topic au nouveau ???


 
C'est des nerdz de Pavlov.  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°788893
the real m​oins moins
Posté le 07-07-2004 à 11:40:33  profilanswer
 

gilou a écrit :

C'est des nerdz de Pavlov.  
A+,

[:ddr555]
 
 
 
(tain je pète un plomb moi, j'avais mis [:gilou] en pensant [:ddr555] :heink:)


Message édité par the real moins moins le 07-07-2004 à 11:41:05

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


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

  [Java] Question bête sur le double héritage

 

Sujets relatifs
question sur formulaire[java][Algo] Tableau 2 dimensions (dynamique?)
Question de portabilitéApplet Java, lire un fichier .txt [java.policy&security access denied]
Question bête à propos de l'affichage d'UNE seule newsQuestion de débutant
Socket et Java[java] NoClassDefFoundError au lancement d'un Jar
question bidon !! sur le system.out.println 
Plus de sujets relatifs à : [Java] Question bête sur le double héritage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR