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.

4
Héritage vs mixins dans les langages dynamiques?
Quand devriez-vous préférer les modèles d'héritage aux mixins dans les langages dynamiques? Par mixins, j'entends un véritable mixage, comme lors de l'insertion de fonctions et de membres de données dans un objet lors de l'exécution. Quand utiliseriez-vous, par exemple, l'héritage prototypique au lieu des mixins? Pour illustrer plus clairement ce …

1
Pourquoi Bertrand Meyer pense-t-il (/ pensait-il) que le sous-classement est le seul moyen d'étendre un module «fermé»?
Dans Meyer Travaux logiciel orienté objet (1988) , il définit le principe ouvert / fermé les suivants: Un module sera dit ouvert s'il est toujours disponible pour extension. Par exemple, il devrait être possible d'ajouter des champs aux structures de données qu'il contient ou de nouveaux éléments à l'ensemble des …






1
Comment vérifier le principe de substitution de Liskov dans une hiérarchie d'héritage?
Inspiré par cette réponse: Le principe de substitution de Liskov exige que Les conditions préalables ne peuvent pas être renforcées dans un sous-type. Les post-conditions ne peuvent pas être affaiblies dans un sous-type. Les invariants du supertype doivent être conservés dans un sous-type. Contrainte d'historique (la "règle d'historique"). Les objets …


8
«Préférez la composition à l'héritage» - Est-ce la seule raison de se défendre contre les changements de signature?
Cette page préconise la composition plutôt que l'héritage avec l'argument suivant (reformulé dans mes mots): Un changement dans la signature d'une méthode de la superclasse (qui n'a pas été remplacée dans la sous-classe) provoque des changements supplémentaires à de nombreux endroits lorsque nous utilisons l'héritage. Cependant, lorsque nous utilisons Composition, …


3
Composition sur héritage mais
J'essaie de m'enseigner le génie logiciel et je me heurte à des informations contradictoires qui me déroutent. J'ai appris la POO et ce que sont les classes / interfaces abstraites et comment les utiliser, mais je lis ensuite qu'il faut «privilégier la composition plutôt que l'héritage». Je comprends que la …

2
Pourquoi la classe de base doit-elle avoir un destructeur virtuel ici si la classe dérivée n'alloue aucune mémoire dynamique brute?
Le code suivant provoque une fuite de mémoire: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < …

5
Héritage vs propriété supplémentaire avec une valeur nulle
Pour les classes avec des champs facultatifs, est-il préférable d'utiliser l'héritage ou une propriété nullable? Considérez cet exemple: class Book { private String name; } class BookWithColor extends Book { private String color; } ou class Book { private String name; private String color; //when this is null then it …
12 java  inheritance  class  null 


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.