Le seul problème, c'est que tu ne pourras jamais empêche quelqu'un d'écrire:
Code :
C1 c1 = ...; // Ici est renvoyé l'object de class C3 par getC1()
if (c1 instanceof C3) {
((C3) c1).functionOnlyDefinedOnC3();
}
et "functionOnlyDefinedOnC3" sera effectivement appelée...
Puisque le type
wouatouwouatou
fo pas trop se pencher sinon on tombe :D
toi tes tout tordu.. vois le resultat de la prog.. :D:D:D
H4dd3R
Merci wouatouwouatou mais je me suis déjà tellement penché que j´en suis resté tordu.. ;)
J´ai appelé un collègue qui a confirmé que ça marchait.. Voilà.. :)
wouatouwouatou
c pas du java mais de lobjet ke tu devrais voir... le concept objet est avant tout necessaire... si jetais toi, je me pencherai dessus avant d'attaquer JAVA... :D
prettysmile
essaie les liens de la bibliolink java, cela t'aidera à mieux comprendre comment fonctionne les classes en java, car ca n'a plus grand chose à voir avec le c (selon moi)
H4dd3R
Pardon pour la syntaye comme je l´ai dit c encore du c pour moi.. :(
Sinon je veux que l´utilisateur de c3 ne puisse pas accéder aux fonctions de c2 (ça compromettrait l´intégrité de c3), mais qu´il puisse donner une référence sur lui même (sous la forme c1) à d´autres objets..
Et je voudrais savoir si le garbagecollector gère bien ce genre de trucs... Voilà.. :)
prettysmile
l'heritage en java c'est public class pipo extends pabo
{}
les classes c2 et c3 sont des classes internes?
je vois pas tres bien ce que tu cherche à faire..
H4dd3R
Salut, j´en suis pour l´instant encore au C (et donc mon exemple de source va être en C), mais j´essaie d´adapter ma façon de penser au Java..
Alors si qqun pouvait me dire si le concept suivant marche:
class c1
{
};
class c2: private c1
{
};
class c3: private c2
{
"c1&" GetC1(); <- Là je sais pas l´écrire en Java mais je souhaite une ref. sur c1 };
En gros c3 hérite en privé car il ne faut pas qu´on puisse utiliser c2, mais c1 par contre j´aimerais pouvoir le fournir à un utilisateur de c3..
Ca marchera en Java?? Le garbagecollector va bien s´occuper de la référence rendue par GetC1()???