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

  FORUM HardWare.fr
  Programmation
  PHP

  Interface et classes abstraites en php5 et php6

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Page Précédente
Auteur Sujet :

Interface et classes abstraites en php5 et php6

n°1345015
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 14:51:54  profilanswer
 

PHP6

Spoiler :


Bande de couillon  [:barome]  


 
 
Bonjours.
Je fais de l'objet mais sans aller plus loin parce que pour l'instant j'y ai pas eu trop d'interêt mais ne faisant le tour des possibilités en php5 je suis resté bloqué sur l'utilité concrète d'une "interface".  
d'après le le site php.net voici leur explication :

Citation :


 Les interfaces objet vous permettent de créer du code qui spécifie quelles méthodes et variables une classe peut implémenter, sans avoir à définir comment ces méthodes seront gérées.
 
Les interfaces sont définies en utilisant le mot clé interface, de la même façon qu'une classe standard mais sans aucun contenu de méthode.
 
Toutes les méthodes déclarées dans une interface doivent être publiques.
 

Code :
  1. <?php
  2. // Declaration de l'interface 'iTemplate'
  3. interface iTemplate
  4. {
  5.    public function setVariable($name, $var);
  6.    public function getHtml($template);
  7. }
  8. // Implémentation de l'interface
  9. // Ceci va fonctionner
  10. class Template implements iTemplate
  11. {
  12.    private $vars = array();
  13.    public function setVariable($name, $var)
  14.    {
  15.        $this->vars[$name] = $var;
  16.    }
  17.    public function getHtml($template)
  18.    {
  19.        foreach($this->vars as $name => $value) {
  20.            $template = str_replace('{' . $name . '}', $value, $template);
  21.        }
  22.        return $template;
  23.    }
  24. }




Avec l'explemple et le bout de code je comprend mais ma question est : A quoi ça sert ? dans quel cas j'en ai besoin.  [:ciler]
Merci !


Message édité par Berceker United le 14-04-2006 à 09:20:34
mood
Publicité
Posté le 12-04-2006 à 14:51:54  profilanswer
 

n°1345044
nargy
Posté le 12-04-2006 à 15:07:13  profilanswer
 

L'exemple est un peu bidon.
On utilise les interfaces, aussi appelé class abstraite en programmation objet, quand on a plusieurs type d'objets qui ont des méthodes (fonctions) en commun.
Les classes et objets créés sont dit polymorphes.
Celà permet, sans connaître le type exact des objets, de les utiliser de la même manière.
 
Pour donner un exemple (pas forcément utile en PHP), tu peut créer une interface flux. Flux gère un flux de donné, qui peut provenir de diverses sources possibles: fichier, connexion HTTP,  connexion FTP, buffer mémoire. Chaque flux possède une interface commune:
- ouvrir()
- lire()
- écrire()
- fermer()
 
Il est facile avec cette interface de connecter deux flux ensembles, à l'aide de lire() et écrire(). Ainsi une seule fonction peut transférer les données de n'importe quel flux vers n'importe quel autre: sauvegarder une page web dans un fichier, poster un fichier sur un ftp, charger un fichier en mémoire, etc...

n°1345068
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-04-2006 à 15:16:14  profilanswer
 

Sans vouloir dévier du sujet

nargy a écrit :

es interfaces, aussi appelé class abstraite en programmation objet


Pour moi c'est pas la même chose :o
 

n°1345071
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 15:17:15  profilanswer
 

Ok je comprend le principe et ça commence à bien m'intéresser puisque via ton exemple j'y vois déjà un interêt. En fait, je peux faire un peut pret la même chose pour passer une information issu d'un type de SGBD à un autre type.  
Etant donnée que le bout de code présent au dessus est bidon et n'apporte pas grand chose peux tu me donner un exemple avec un juste un squelette stp ? :jap:
merci

n°1345074
skeye
Posté le 12-04-2006 à 15:18:06  profilanswer
 

anapajari a écrit :

Sans vouloir dévier du sujet
 
Pour moi c'est pas la même chose :o


( [:romf] )


---------------
Can't buy what I want because it's free -
n°1345075
benamoubea​ch
tivuplai
Posté le 12-04-2006 à 15:18:20  profilanswer
 

nargy a écrit :


On utilise les interfaces, aussi appelé class abstraite en programmation objet,


Selon mes souvenirs, une interface et une classe abstraite sont 2 choses bien distinctes.
 
 
Edit: grilled


Message édité par benamoubeach le 12-04-2006 à 15:18:41
n°1345082
Djebel1
Nul professionnel
Posté le 12-04-2006 à 15:22:49  profilanswer
 

classe abstraite != d'interface
 
une classe abstraite est une classe qui ne sera jamais instanciée, mais qui comprends bel et bien des méthodes (avec un corps), des attributs, etc.
Concrètement, à utiliser quand vous avez besoin de faire un héritage pour plusieurs classes, mais que la classe parente ne vous servira pas (elle est donc juste là pour l'héritage).
 
Une interface, comme disait je sais plus qui sur ce forum, c'est un contrat : en implémentant une interface, vous garantissez que la classe possèdera toutes les méthodes, noms, attributs, listés dans l'interface.
Un exemple peut-être des classes gerant le multilangue : une classe Langue_Fr et une classe Langue_En.  
En implémentant une interface pour ces deux classes, vous garantirez ne pas avoir oublié une méthode, ce qui se soldera par un message d'erreur sur l'une de vos pages en fonction de la langue.
 
Après comme dirait Masklinn, en PHP c'est un peu de la fumisterie les interfaces, puisque ça ne vérifie même pas les types des arguments des méthodes.
Moi j'aime quand même bien, ça évite des bugs si un autre développeur reprend ton taf, et ça évite des erreurs d'inattention

n°1345087
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 15:24:22  profilanswer
 

C'est pas hors sujet cela m'intéresse aussi les avis sont la bienvenu :
j'ai trouvé une définition et elle s'approche beaucoup d'une interface :

Citation :


Abstract :
Elle peut servir de classe de base à d’autres classes : ces sous-classes devront implémenter toutes les méthodes abstraites de la super-classe ou bien les déclarer abstraites


 

Citation :


Interface :
Une interface est une sorte de modèle auquel doivent se conformer les classes qui s’y réfèrent. On peut ainsi définir une interface pour une bibliothèque entière de classes


 
Source


Message édité par Berceker United le 12-04-2006 à 15:29:31
n°1345089
skeye
Posté le 12-04-2006 à 15:25:30  profilanswer
 

Une interface est une classe abstraite sans membres et dont toutes les méthodes sont abstraites...[:jagstang]


---------------
Can't buy what I want because it's free -
n°1345098
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 15:28:29  profilanswer
 

Djebel1 a écrit :

classe abstraite != d'interface
 
une classe abstraite est une classe qui ne sera jamais instanciée, mais qui comprends bel et bien des méthodes (avec un corps), des attributs, etc.
Concrètement, à utiliser quand vous avez besoin de faire un héritage pour plusieurs classes, mais que la classe parente ne vous servira pas (elle est donc juste là pour l'héritage).
 
Une interface, comme disait je sais plus qui sur ce forum, c'est un contrat : en implémentant une interface, vous garantissez que la classe possèdera toutes les méthodes, noms, attributs, listés dans l'interface.
Un exemple peut-être des classes gerant le multilangue : une classe Langue_Fr et une classe Langue_En.  
En implémentant une interface pour ces deux classes, vous garantirez ne pas avoir oublié une méthode, ce qui se soldera par un message d'erreur sur l'une de vos pages en fonction de la langue.
 
Après comme dirait Masklinn, en PHP c'est un peu de la fumisterie les interfaces, puisque ça ne vérifie même pas les types des arguments des méthodes.
Moi j'aime quand même bien, ça évite des bugs si un autre développeur reprend ton taf, et ça évite des erreurs d'inattention


 
Ok je pense que ça résume bien la différence entre les deux. Donc l'exemple de nargy sur l'utilité ne peut pas servir à cela.

mood
Publicité
Posté le 12-04-2006 à 15:28:29  profilanswer
 

n°1345104
anapajari
s/travail/glanding on hfr/gs;
Posté le 12-04-2006 à 15:31:16  profilanswer
 

skeye a écrit :

Une interface est une classe abstraite sans membres et dont toutes les méthodes sont abstraites...[:jagstang]


sauf qu'un classe peut implémenter plusieurs interfaces mais n'hériter que d'une classe abstraite non?

n°1345108
skeye
Posté le 12-04-2006 à 15:32:59  profilanswer
 

anapajari a écrit :

sauf qu'un classe peut implémenter plusieurs interfaces mais n'hériter que d'une classe abstraite non?


dépend des langages, ça. ;)


---------------
Can't buy what I want because it's free -
n°1345135
nargy
Posté le 12-04-2006 à 15:49:58  profilanswer
 

[:ouais2] ouais, ya chipotage là
Class abstraite pure finale ça vous convient mieux?
 
une exemple, avec SGBD.
Factorisation: pour toutes les BDD tu aura besoin de:
- ouvrir une bdd
- fermer une bdd
- envoyer une requête
- lire le résultat d'une requête
- libérer la mémoire occupé par un résultat
- récupérer un code d'erreur
 
Ce qui donne:
function open($host, $port, $user, $pass, $options);
function close();
function query($q);
function fetch($numrow=-1);
function flush();
function error();
 
Pour mysql:
function open($host, $port, $user, $pass, $options);
$this->db=mysql_connect($host, $port, $user, $pass, $options);
 
function close();
mysql_close($this->db);
 
function query($q);
$this-currentresult=mysql_query($q, $this->db);
 
function fetch($numrow=-1);
return mysql_fetch_array($this-currentresult, $numrow);
 
function flush()
mysql_free_result($this->currentresult);
 
function error();
return mysql_error();
 
NB: ma syntaxe mysql est très vague, à vérifier dans la doc, j'ai simplifié mais il faudrait aussi faire les tests necessaires sur les ressources Mysql.

Message cité 1 fois
Message édité par nargy le 12-04-2006 à 15:51:18
n°1345146
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 15:54:28  profilanswer
 

nargy a écrit :

[:ouais2] ouais, ya chipotage là
Class abstraite pure finale ça vous convient mieux?
 
une exemple, avec SGBD.
Factorisation: pour toutes les BDD tu aura besoin de:
- ouvrir une bdd
- fermer une bdd
- envoyer une requête
- lire le résultat d'une requête
- libérer la mémoire occupé par un résultat
- récupérer un code d'erreur
 
Ce qui donne:
function open($host, $port, $user, $pass, $options);
function close();
function query($q);
function fetch($numrow=-1);
function flush();
function error();
 
Pour mysql:
function open($host, $port, $user, $pass, $options);
$this->db=mysql_connect($host, $port, $user, $pass, $options);
 
function close();
mysql_close($this->db);
 
function query($q);
$this-currentresult=mysql_query($q, $this->db);
 
function fetch($numrow=-1);
return mysql_fetch_array($this-currentresult, $numrow);
 
function flush()
mysql_free_result($this->currentresult);
 
function error();
return mysql_error();
 
NB: ma syntaxe mysql est très vague, à vérifier dans la doc, j'ai simplifié mais il faudrait aussi faire les tests necessaires sur les ressources Mysql.


Donc une interface est là pour garantir l'implémentation des methodes définit dans l'interface.

n°1345150
nargy
Posté le 12-04-2006 à 15:56:17  profilanswer
 

> Donc une interface est là pour garantir l'implémentation des methodes définit dans l'interface.
- exact
- je te laisse deviner ce qu'il faut ajouter pour faire la même chose avec postgres et odbc. ensuite tu peut utiliser uniformément l'une ou l'autre de ces BDD dans tes scripts PHP.

n°1345157
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 16:00:20  profilanswer
 

il est possible de mélanger une interface et un héritage ?


Message édité par Berceker United le 12-04-2006 à 16:22:12
n°1345162
skeye
Posté le 12-04-2006 à 16:02:12  profilanswer
 

bah oui, tu peux très bien avoir
 
class truc extends chose implements machin{
...
}


---------------
Can't buy what I want because it's free -
n°1345167
nargy
Posté le 12-04-2006 à 16:04:35  profilanswer
 

dans un language objet pure (PHP faut voire, il me semble que c'es ok) tu peut utiliser autant de combinaisons d'interfaces, de classes hérités que souhaité, et de définitions de membres supplémentaires.

n°1345170
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 16:05:55  profilanswer
 

skeye a écrit :

bah oui, tu peux très bien avoir
 
class truc extends chose implements machin{
...
}


 

nargy a écrit :

dans un language objet pure (PHP faut voire, il me semble que c'es ok) tu peut utiliser autant de combinaisons d'interfaces, de classes hérités que souhaité, et de définitions de membres supplémentaires.


 
C'est d'la bombe ça  [:negueu]

n°1345173
skeye
Posté le 12-04-2006 à 16:06:46  profilanswer
 

nan, php supporte pas l'héritage multiple. :o


Message édité par skeye le 12-04-2006 à 16:07:00

---------------
Can't buy what I want because it's free -
n°1345183
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 16:08:28  profilanswer
 

Il y a que c++ qui le supporte il me semble.

n°1345191
skeye
Posté le 12-04-2006 à 16:11:25  profilanswer
 

il n'y a pas grand chose qui le supporte, oui... :o


---------------
Can't buy what I want because it's free -
n°1345196
omega2
Posté le 12-04-2006 à 16:14:42  profilanswer
 

nargy a écrit :

dans un language objet pure (PHP faut voire, il me semble que c'es ok) tu peut utiliser autant de combinaisons d'interfaces, de classes hérités que souhaité, et de définitions de membres supplémentaires.


pas dans tous les langages malheureusement. (ou heureusement)
En java par exemple, tu ne peux pas hériter de deux classes à la fois et pourtant, c'est un langage purement objet. (tout le code dois être dans des classes ou des interfaces)
Le C++, par contre, est un langage objet (mais pas totalement objet) permettant d'utiliser des fonctions n'appartement à aucune classe (petit héritage du C) permet de faire de l'héritage multiple.
 
Comme quoi même en question d'interface et d'héritage, il n'y a pas de régle absolut disant ce qu'il est possible ou pas de faire dans un langage simplement objet ou totalement objet.

n°1345215
Berceker U​nited
PSN : berceker_united
Posté le 12-04-2006 à 16:25:44  profilanswer
 

Un classe qui implémente une interface doit avoir à l'identique les methodes ou elle peut en avoir en avoir plus dans la meme classe  
ex :
 

Code :
  1. Interface IClassA{
  2.   Function A(){}
  3.   Function B(){}
  4. }
  5. Class ClassB implements iClassA{
  6.   Function A(){
  7.     ...
  8.   }
  9.   Function B(){
  10.     ...
  11.   }
  12.   Function C(){
  13.     ...
  14.   }
  15. }

n°1345230
smaragdus
whores, drugs & J.S. Bach
Posté le 12-04-2006 à 16:35:02  profilanswer
 

skeye a écrit :

Une interface est une classe abstraite sans membres et dont toutes les méthodes sont abstraites...[:jagstang]


Tout à fait.  
La distinction provient uniquement de certains langages qui ne permettent pas l'héritage multiple :jap:

n°1345234
Djebel1
Nul professionnel
Posté le 12-04-2006 à 16:38:34  profilanswer
 

skeye a écrit :

Une interface est une classe abstraite sans membres et dont toutes les méthodes sont abstraites...[:jagstang]


tout à fait, mais il y a bien une différence entre "extends" et "implements". Et c'est plutôt à ce niveau là que se situe la différence entre interface et classe abstraite au final, mais tu as tout à fait raison.

n°1345451
gizmo
Posté le 12-04-2006 à 20:16:56  profilanswer
 

smaragdus a écrit :

Tout à fait.  
La distinction provient uniquement de certains langages qui ne permettent pas l'héritage multiple :jap:


Pas vraiment non. Une classe abstraite peut très bien décider de mettre une méthode final pour garantir qu'une sous-classe n'ira pas corrompre sont fonctionnement. Cela peut s'avérer très util lorsque tu dois définir un parttern de factory. Et ceci, c'est tout à fait indépendant de l'héritage multiple ou non. Si l'on considére que l'intreface s'apparente à un contrat, la classe abstraite s'apparenterait plus à un texte lacunaire, une partie de l'info existe déjà, à toi de combler les blancs.

n°1345483
masklinn
í dag viðrar vel til loftárása
Posté le 12-04-2006 à 20:26:31  profilanswer
 

Berceker United a écrit :

Il y a que c++ qui le supporte il me semble.


Il te semble vachement mal.
 
Maintenant si on se restreint à C++, Java et PHP ([:pingouino]) alors oui

gizmo a écrit :

Pas vraiment non. Une classe abstraite peut très bien décider de mettre une méthode final pour garantir qu'une sous-classe n'ira pas corrompre sont fonctionnement. Cela peut s'avérer très util lorsque tu dois définir un parttern de factory. Et ceci, c'est tout à fait indépendant de l'héritage multiple ou non. Si l'on considére que l'intreface s'apparente à un contrat, la classe abstraite s'apparenterait plus à un texte lacunaire, une partie de l'info existe déjà, à toi de combler les blancs.


Le monsieur te dit que les interfaces correspondent à un cas particulier des classes abstraites: les classes abstraites dont toutes les méthodes sont abstraites [:itm]
 
Et il a parfaitement raison [:itm]
 
D'ailleurs en C++ on implémente les interfaces... via des classes abstraites [:itm]


Message édité par masklinn le 12-04-2006 à 20:27:36

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1345545
gizmo
Posté le 12-04-2006 à 21:09:24  profilanswer
 

Dans ce cas tu vas m'expliquer comment faire un constructeur dans une interface [:itm]

n°1345547
masklinn
í dag viðrar vel til loftárása
Posté le 12-04-2006 à 21:12:26  profilanswer
 

gizmo a écrit :

Dans ce cas tu vas m'expliquer comment faire un constructeur dans une interface [:itm]


T'es au courant qu'on est pas obligé de définir un constructeur? [:itm]
 
Et qu'une classe abstraite ne peut pas plus être construite qu'une interface? [:itm]
 
Je vais te donner un conseil: lis le GoF, tu découvriras probablement plein de trucs [:itm]


Message édité par masklinn le 12-04-2006 à 21:13:33

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1345548
gizmo
Posté le 12-04-2006 à 21:13:14  profilanswer
 

oui, et si je VEUX le définir, fais comment avec une interface?

n°1345549
masklinn
í dag viðrar vel til loftárása
Posté le 12-04-2006 à 21:15:32  profilanswer
 

gizmo a écrit :

oui, et si je VEUX le définir, fais comment avec une interface?


Arrêter d'être stupide me semblerait être une bonne idée pour commencer, si tu réfléchissais 3 secondes tu te rendrais probablement compte que ta question a autant de sens que "comment je fais pour nager un 100m crawl dans un volcan en éruption" [:itm]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1345566
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-04-2006 à 21:30:38  profilanswer
 

berceker >> un exemple concret d'utilisation des interfaces en Java. récemment, j'ai eu à coder un programme qui opérait des traitements sur une base Oracle ou une base Access. les traitements étaient identiques.
 
voici le code :

Code :
  1. private BddUpdater bdUpdater; // BddUpdater est une interface
  2. (...)
  3. // puis l'utilisateur choisit la base à updater. une fois qu'il a choisi, je créé mon BddUpdater :
  4. if (option.equals("Access" )) {
  5.     bdUpdater = new AccessUpdater(this);
  6. } else if (option.equals("Oracle" )) {
  7.     bdUpdater = new OracleUpdater(this);
  8. }


tu saisis ? les classes AccessUpdater et OracleUpdater implémentent toutes les deux l'interface BddUpdater, et donc implémentent ses méthodes. tout ce que j'ai à faire, c'est d'appeler les méthodes d'update à partir de mon BddUpdater, le polymorphisme me garantit ensuite que la méthode correspondant à la base utilisée sera appelée.
 
pour bien faire, il faudrait faire générer l'updater par un factory, ça permettrait de supporter d'autres SGBD sans toucher au code métier, mais bon, vu que je me cassais de la boite, j'avais pas trop envie de me casser le cul :D

Message cité 1 fois
Message édité par Harkonnen le 12-04-2006 à 21:37:23

---------------
J'ai un string dans l'array (Paris Hilton)
n°1345577
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-04-2006 à 21:44:35  profilanswer
 

Berceker United a écrit :

Un classe qui implémente une interface doit avoir à l'identique les methodes ou elle peut en avoir en avoir plus dans la meme classe


elle peut en avoir plus, tant qu'elle implémente les méthodes de l'interface. une classe ne peut pas avoir moins de méthodes que l'interface qu'elle implémente, mais le contraire est tout à fait possible


---------------
J'ai un string dans l'array (Paris Hilton)
n°1345583
smaragdus
whores, drugs & J.S. Bach
Posté le 12-04-2006 à 22:02:23  profilanswer
 

gizmo a écrit :

Si l'on considére que l'intreface s'apparente à un contrat, la classe abstraite s'apparenterait plus à un texte lacunaire, une partie de l'info existe déjà, à toi de combler les blancs.


 
Et une interface c'est une classe abstraite spéciale où il n'y a que des blancs à combler, tu confirmes donc ce que je dis :lol:
L'interface, c'est juste un truc inventé (par java ?) pour pallier au manque d'héritage multiple de certains langages objet.  
 
D'ailleurs en java, y a des classes "XXXImpl" qui implementent les interfaces "IXXX" pour combler ce manque mais qui oblige à agreger l'implementation en plus d'heriter de l'interface au lieu de simplement hériter d'une classe abstraite qui serait partiellement définie : double lourdeur donc  [:zytrahusathome]
 

Citation :

oui, et si je VEUX le définir, fais comment avec une interface?


 
tu veux definir un constructeur d'une classe qui n'est pas instanciable ? LOL  [:zytrafumay]

Message cité 2 fois
Message édité par smaragdus le 12-04-2006 à 22:06:01
n°1345584
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-04-2006 à 22:04:05  profilanswer
 

smaragdus a écrit :


L'interface, c'est juste un truc inventé pour pallier au manque d'héritage multiple de certains langages objet.


l'héritage multiple, c'est juste un truc inventé pour pallier au manque d'interfaces de certains langages objet


---------------
J'ai un string dans l'array (Paris Hilton)
n°1345585
smaragdus
whores, drugs & J.S. Bach
Posté le 12-04-2006 à 22:06:42  profilanswer
 

Harkonnen a écrit :

l'héritage multiple, c'est juste un truc inventé pour pallier au manque d'interfaces de certains langages objet


 
LOL, tu ferais mieux de te renseigner sur l'histoire de l'informatique  [:zytrahusathome]
La programmation objet existait avant java, tu sais ça ?
 
(A reflexion con, reflexion con et demi  [:catharsis] )

Message cité 1 fois
Message édité par smaragdus le 12-04-2006 à 22:11:49
n°1345588
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-04-2006 à 22:13:53  profilanswer
 

smaragdus a écrit :

LOL, tu ferais mieux de te renseigner sur l'histoire de l'informatique  [:zytrahusathome]
La programmation objet existait avant java, tu sais ça ?


oui, et sais tu que l'humour au second degré existait déjà chez les sumériens ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1345590
masklinn
í dag viðrar vel til loftárása
Posté le 12-04-2006 à 22:17:28  profilanswer
 

Harkonnen a écrit :

l'héritage multiple, c'est juste un truc inventé pour pallier au manque d'interfaces de certains langages objet


Harkonnen a écrit :

oui, et sais tu que l'humour au second degré existait déjà chez les sumériens ?


Ouais mais l'humour c'est mieux quand c'est drôle, là il n'y a aucune relation entre ta déclaration et la réalité historique donc bon s'pas très très drôle [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1345595
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 12-04-2006 à 22:24:44  profilanswer
 

c'était juste pour souligner le coté absurde de la réflexion de Smaragdus qui disait que les interfaces n'étaient là que pour pallier au manque d'héritage multiple. si vraiment c'était le cas, pourquoi un langage comme C#, sorti bien après Java, ne supporte pas l'héritage multiple ?
l'héritage multiple, pour aussi pratique qu'il soit, amène aussi son lot de soucis, et c'est pour ça que Java ou C# ont fait le compromis de supporter les interfaces à la place. dire que les interfaces sont là pour pallier au manque d'héritage multiple est une connerie sans nom


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4
Page Précédente

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

  Interface et classes abstraites en php5 et php6

 

Sujets relatifs
configurer php5 pour apache2fréquences de classes sous vba-excel
Question de débutant. Interface HTML pour mes scripts perl ???Créer une interface graphique en c
installer une interface https ?Comment développer une appli, avec une interface graphique, que l
"Interface texte" en Cpb extension PHP5 sur mandriva 2006
[C++] Classes polymèrespostgres+ interface utilisateur
Plus de sujets relatifs à : Interface et classes abstraites en php5 et php6


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