Pourquoi préférer la composition à l'héritage? Quels compromis y a-t-il pour chaque approche? Quand devriez-vous choisir l'héritage plutôt que la
L'héritage est le système de programmation orientée objet qui permet aux objets de prendre en charge des opérations définies par des types antérieurs sans avoir à fournir leur propre définition. C'est le vecteur majeur du polymorphisme dans la programmation orientée objet.
Pourquoi préférer la composition à l'héritage? Quels compromis y a-t-il pour chaque approche? Quand devriez-vous choisir l'héritage plutôt que la
Lors de la planification de mes programmes, je commence souvent par une chaîne de pensée comme celle-ci: Une équipe de football n'est qu'une liste de joueurs de football. Par conséquent, je devrais le représenter avec: var football_team = new List<FootballPlayer>(); L'ordre de cette liste...
Quelles sont les différences entre ces deux fragments de code? En utilisant type(): import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else() En utilisant isinstance(): if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b,...
Y a-t-il une raison pour qu'une déclaration de classe hérite object? Je viens de trouver du code qui fait cela et je ne trouve pas de bonne raison. class MyClass(object): # class code
La page Portée de référence de l'API indique: Une étendue peut hériter d'une étendue parent. La page Portée du Guide du développeur indique: Une portée (de manière prototypique) hérite des propriétés de sa portée parent. Ainsi, une portée enfant hérite-t-elle toujours de manière prototypique de sa...
Quelle est la différence entre public, privateet l' protectedhéritage en C ++? Toutes les questions que j'ai trouvées sur SO concernent des cas
Dans " Programmation Python ", Mark Lutz mentionne les "mixins". Je viens d'un milieu C / C ++ / C # et je n'ai jamais entendu le terme auparavant. Qu'est-ce qu'un mixin? En lisant entre les lignes de cet exemple (auquel j'ai lié parce qu'il est assez long), je suppose qu'il s'agit d'utiliser...
Je suis à peu près nouveau dans la programmation orientée objet Python et j'ai du mal à comprendre la super()fonction (nouvelles classes de style), surtout en ce qui concerne l'héritage multiple. Par exemple, si vous avez quelque chose comme: class First(object): def __init__(self): print "first"...
Comment configurer une classe qui représente une interface? Est-ce juste une classe de base
Cette figure montre à nouveau que chaque objet a un prototype. La fonction constructeur Foo a également la sienne __proto__qui est Function.prototype, et qui à son tour fait également référence via sa __proto__propriété au Object.prototype. Ainsi, répétez, Foo.prototype n'est qu'une propriété...
Je suis un peu confus sur la façon dont les génériques Java gèrent l'héritage / polymorphisme. Supposons la hiérarchie suivante - Animal (parent) Chien - Chat (Enfants) Supposons donc que j'ai une méthode doSomething(List<Animal> animals). D'après toutes les règles d'héritage et de...
Quelqu'un l'a mentionné dans l'IRC comme étant le problème de
Veuillez expliquer dans une langue facile à comprendre ou un lien vers un
Lors de la création d'une hiérarchie d'objets simple en Python, j'aimerais pouvoir invoquer des méthodes de la classe parente à partir d'une classe dérivée. En Perl et Java, il existe un mot-clé pour cela ( super). En Perl, je pourrais faire ceci: package Foo; sub frotz { return "Bamf"; } package...
Comment appeler la fonction parent à partir d'une classe dérivée à l'aide de C ++? Par exemple, j'ai une classe appelée parentet une classe appelée childqui est dérivée du parent. Dans chaque classe, il y a une printfonction. Dans la définition de la fonction d'impression de l'enfant, je voudrais...
Quelle est la différence entre: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() et: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) J'ai vu superbeaucoup utilisé dans les classes avec un seul héritage. Je peux voir pourquoi vous...
Si la classe Bet la classe Cétendent la classe Aet que j'ai un objet de type Bou C, comment puis-je déterminer de quel type il s'agit d'une
Quelle est la différence? Quand devrais-je utiliser quoi? Pourquoi y en a-t-il
Dans une de mes interviews, on m'a demandé d'expliquer la différence entre une classe Interface et une classe Abstract . Voici ma réponse: Les méthodes d'une interface Java sont implicitement abstraites et ne peuvent pas avoir d'implémentations. Une classe abstraite Java peut avoir des méthodes...
Cela peut être une question générique de POO. Je voulais faire une comparaison générique entre une interface et une classe abstraite sur la base de leur utilisation. Quand voudrait-on utiliser une interface et quand voudrait-on utiliser une classe abstraite