Articles of inheritance

Modificateurs d’access java et méthodes de substitution

Pourquoi Java spécifie-t-il que le spécificateur d’access à une méthode de substitution peut autoriser plus, mais pas moins, un access que la méthode surchargée? Par exemple, une méthode d’instance protégée dans la super-classe peut être rendue publique, mais non privée, dans la sous-classe.

Héritage du constructeur / destructeur C ++

EDIT: Résumé des réponses Dans ce qui suit, B est une sous-classe de A. C’est une question de terminologie. Les facteurs et les dtors ne sont pas hérités, en ce sens que le ctor / dtor de B ne sera pas emprunté à l’interface de A. Une classe a au moins un constructeur et possède […]

C ++ est-il autorisé à augmenter la taille de la classe dérivée s’il n’y a pas de nouvelles variables membres par rapport à la classe de base?

Supposons que j’ai une classe de base avec des variables membres et aucune fonction virtuelle: class Base { int member; }; et une classe dérivée qui dérive de façon non virtuelle de Base et ne comporte aucune nouvelle variable membre ni aucune fonction virtuelle: class Derived : Base { }; De toute évidence, sizeof(Derived) ne […]

Empêcher l’inheritance des classes en C ++

Récemment, un de mes amis m’a demandé comment empêcher l’inheritance des classes en C ++. Il voulait que la compilation échoue. J’y pensais et j’ai trouvé 3 réponses. Je ne sais pas quel est le meilleur. 1) Constructeur (s) privé (s) class CBase { public: static CBase* CreateInstance() { CBase* b1 = new CBase(); return […]

L’équivalent de C # de Java en génériques

En Java, je peux faire ce qui suit: (supposons que Subclass étend Base ): ArrayList aList = new ArrayList(); Quel est l’équivalent en C # .NET? Il n’y a pas ? extends mot clé apparemment et cela ne fonctionne pas: List aList = new List();

Constructeurs et inheritances par défaut en Java

J’ai une question sur les constructeurs et l’inheritance par défaut en Java. Généralement, si vous écrivez une classe et n’incluez aucun constructeur, Java fournit automatiquement pour vous un constructeur par défaut (un sans paramètre), qui initialise toutes les variables d’instance de la classe (le cas échéant) avec des valeurs par défaut (0, null) , ou […]

Quel est le coût en taille de l’inheritance Java?

Il existe différents articles sur les interwebs qui tentent d’estimer empiriquement la surcharge d’un java.lang.Object dans les implémentations JVM en particulier. Par exemple, j’ai vu la surcharge de taille d’un Object nu estimée à 8 octets dans certaines JVM. Ce que je voudrais savoir, c’est si une implémentation JVM classique de la relation extend introduit […]

Intégration à la place de l’inheritance dans Go

Quelle est votre opinion sur cette décision de conception? Quels avantages a-t-il et quels inconvénients? Liens: Description de l’incorporation

Pourquoi une déclaration d’usage ne fonctionne-t-elle pas pour résoudre le problème du diamant?

Veuillez considérer le code suivant: struct A { void f() { } }; struct B1 : A { }; struct B2 : A { }; struct C : B1, B2 { void f() // works { B1::f(); } //using B1::f; // does not work //using B1::A::f; // does not work as well }; int main() […]

Pourquoi avons-nous réellement besoin de l’inheritance privé ou protégé en C ++?

En C ++, je ne peux pas penser à un cas dans lequel j’aimerais hériter de private / protected depuis une classe de base: class Base; class Derived1 : private Base; class Derived2 : protected Base; Est-ce vraiment utile?