Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jedaï
cyrille wrote:
bonjour,
pouvez vous m'aider à clarifier la différence de déclaration d'héritage entre ces deux versions :
1:
package ClasseFille ; use ClasseParent ; @ISA = qw(ClasseParent);
2:
package ClasseFille ; use base qw(ClasseParent);
merci d'avance, cyrille
Avec use base, la filiation est fixée à la compilation, avec @ISA à l'exécution (je crois...), de plus use base fait un require ClasseParent, pas un use ClasseParent.
La différence n'est pas très grande à vrai dire... Mais use base fait hériter des champs de la classe parente si celle-ci utilisait le pragma field, tandis que @ISA n'influe pas dans ce cas. :) De plus, use base est plus court et plus cool je trouve, comme il est plus récent et que c'est un pragma, on peut toujours espérer qu'il restera en prise avec l'évolution du modèle objet dans Perl(5 puisque 6 sera tout à fait différent, beaucoup mieux au niveau objet, plus simple, puissant, etc...).
cyrille wrote:
bonjour,
pouvez vous m'aider à clarifier la différence de déclaration d'héritage
entre ces deux versions :
1:
package ClasseFille ;
use ClasseParent ;
@ISA = qw(ClasseParent);
2:
package ClasseFille ;
use base qw(ClasseParent);
merci d'avance,
cyrille
Avec use base, la filiation est fixée à la compilation, avec @ISA à
l'exécution (je crois...), de plus use base fait un require
ClasseParent, pas un use ClasseParent.
La différence n'est pas très grande à vrai dire...
Mais use base fait hériter des champs de la classe parente si celle-ci
utilisait le pragma field, tandis que @ISA n'influe pas dans ce cas. :)
De plus, use base est plus court et plus cool je trouve, comme il est
plus récent et que c'est un pragma, on peut toujours espérer qu'il
restera en prise avec l'évolution du modèle objet dans Perl(5 puisque 6
sera tout à fait différent, beaucoup mieux au niveau objet, plus simple,
puissant, etc...).
pouvez vous m'aider à clarifier la différence de déclaration d'héritage entre ces deux versions :
1:
package ClasseFille ; use ClasseParent ; @ISA = qw(ClasseParent);
2:
package ClasseFille ; use base qw(ClasseParent);
merci d'avance, cyrille
Avec use base, la filiation est fixée à la compilation, avec @ISA à l'exécution (je crois...), de plus use base fait un require ClasseParent, pas un use ClasseParent.
La différence n'est pas très grande à vrai dire... Mais use base fait hériter des champs de la classe parente si celle-ci utilisait le pragma field, tandis que @ISA n'influe pas dans ce cas. :) De plus, use base est plus court et plus cool je trouve, comme il est plus récent et que c'est un pragma, on peut toujours espérer qu'il restera en prise avec l'évolution du modèle objet dans Perl(5 puisque 6 sera tout à fait différent, beaucoup mieux au niveau objet, plus simple, puissant, etc...).