Questions marquées «inheritance»

L'héritage est un moyen de réutiliser le code des objets existants, ou d'établir un sous-type à partir d'un objet existant, ou les deux, selon la prise en charge du langage de programmation.

5
Comment définir qu'une méthode peut être annulée est-il un engagement plus fort que de définir une méthode?
De: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Je pense toujours que c'est vrai même après dix ans. L'héritage est un moyen intéressant de changer de comportement. Mais nous savons qu’elle est fragile, car la sous-classe peut facilement émettre des hypothèses sur le contexte dans lequel une méthode qu’elle substitue est appelée. Il existe …




5
Les mixins Python sont-ils un anti-motif?
Je suis tout à fait conscient que d' pylintautres outils d'analyse statique ne savent pas tout et qu'il faut parfois désobéir à leurs conseils. (Ceci s'applique à différentes classes de messages, pas seulement à l' conventionart.) Si j'ai des cours comme class related_methods(): def a_method(self): self.stack.function(self.my_var) class more_methods(): def b_method(self): …

10
Est-il possible d'avoir des objets qui se lancent, même si cela pollue l'API de leurs sous-classes?
J'ai une classe de base, Base. Il a deux sous-classes, Sub1et Sub2. Chaque sous-classe a quelques méthodes supplémentaires. Par exemple, Sub1a Sandwich makeASandwich(Ingredients... ingredients)et Sub2a boolean contactAliens(Frequency onFrequency). Puisque ces méthodes prennent des paramètres différents et font des choses complètement différentes, elles sont complètement incompatibles et je ne peux pas …

7
Pourquoi les constructeurs ne sont-ils pas hérités?
Je ne comprends pas ce que pourraient être les problèmes si un constructeur était hérité d'une classe de base. Cpp Primer Plus dit: Les constructeurs diffèrent des autres méthodes de classe en ce qu'ils créent de nouveaux objets, alors que d'autres méthodes sont appelées par des objets existants . C'est …
33 c++  inheritance 

10
Est-ce que “Parent x = nouvel enfant ();” au lieu de “Enfant x = nouvel enfant ();” est une mauvaise pratique si nous pouvons utiliser ce dernier?
Par exemple, j'avais vu des codes créer un fragment comme celui-ci: Fragment myFragment=new MyFragment(); qui déclare une variable sous la forme Fragment au lieu de MyFragment, lequel MyFragment est une classe enfant de Fragment. Je ne suis pas satisfait de cette ligne de codes car je pense que ce code …


7
Dois-je tester des méthodes héritées?
Supposons que j'ai un gestionnaire de classe dérivé d'un employé de classe de base et que l'employé ait une méthode getEmail () héritée par le gestionnaire . Dois-je tester que le comportement de la méthode getEmail () d'un manager est en fait le même que celui d'un employé? Au moment …




3
Meilleure conception pour les formulaires Windows qui partageront des fonctionnalités communes
Dans le passé, j'ai utilisé l'héritage pour permettre l'extension des formulaires Windows dans mon application. Si tous mes formulaires avaient des contrôles, des illustrations et des fonctionnalités communs, je créerais un formulaire de base implémentant les contrôles et les fonctionnalités communs, puis autoriserais d'autres contrôles à hériter de ce formulaire …

3
Comment le renforcement des conditions préalables et l'affaiblissement des post-conditions violent-ils le principe de substitution de Liskov?
J'ai lu que le principe de substitution de Liskov est violé si: Les conditions préalables sont renforcées, ou Les postconditions sont affaiblies Mais je ne sais pas encore comment ces deux points violeraient le principe de substitution de Liskov. Quelqu'un peut-il expliquer avec un exemple. Plus précisément, comment l'une des …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.