L'Héritage Multiple en ActionScript 3
L'Héritage Multiple en ActionScript 3? Est-il possible? J'ai lu quelque part qu'il est possible en as3.
Si oui, alors comment?
c'est mon Doucument la Classe A. comme
package
{
import flash.display.MovieClip;
public class A extends MovieClip implements B
{
public var value1:Number=10;
public function A()
{
trace("A Class Constructor");
}
public function hit():void
{
trace(value1+' from hit');
}
}
}
Un autre est interface B.
package
{
public interface B
{
trace(' interface ');
function hit():void;
}
}
Merci d'avance.
Vous ne pouvez étendre à partir d'une seule classe, mais vous pouvez œuvre autant d'interfaces que vous le souhaitez. Exactement ce que vous essayez de quand vous dites "l'Héritage Multiple"?
Voté en bas de l'onu-question claire. La personne veut
cela s'appelle l'héritage multiple en utilisant l'interface.
Ses pas l'héritage.. La classe n'est pas hériter.. Quelles fonctions avez-vous hérité? Aucun.. Vous avez déclaré qu'il y aura quelques publiquement les méthodes disponibles sur votre classe, c'est tout. Aucune fonctionnalité n'derrière ces méthodes, à moins que la classe elle-même. Donc Plusieurs Implémente pas l'Héritage Multiple
Correct à 100%, -1 pour ne pas poser clairement. votre question n'a de sens sans l'extrait de code. mais l'extrait de rendre votre question pas de sens.
Voté en bas de l'onu-question claire. La personne veut
Multiple Implements
cela s'appelle l'héritage multiple en utilisant l'interface.
Ses pas l'héritage.. La classe n'est pas hériter.. Quelles fonctions avez-vous hérité? Aucun.. Vous avez déclaré qu'il y aura quelques publiquement les méthodes disponibles sur votre classe, c'est tout. Aucune fonctionnalité n'derrière ces méthodes, à moins que la classe elle-même. Donc Plusieurs Implémente pas l'Héritage Multiple
Correct à 100%, -1 pour ne pas poser clairement. votre question n'a de sens sans l'extrait de code. mais l'extrait de rendre votre question pas de sens.
OriginalL'auteur Swati Singh | 2012-02-02
Vous devez vous connecter pour publier un commentaire.
L'héritage Multiple n'est pas possible. Mais avec les interfaces vous pouvez imiter certaines des fonctionnalités de l'héritage multiple. MI a d'importantes lacunes, notamment le diamant problème:
http://en.wikipedia.org/wiki/Diamond_problem
C'est pourquoi de nombreuses langues ne prennent pas en charge MI, mais seulement de l'héritage simple.
L'utilisation d'interfaces, il "semble" que vous appliquez MI, mais en réalité ce n'est pas le cas puisque les interfaces ne pas fournir une implémentation, mais seulement une promesse de fonctionnalité.
P. S.: Dans le cas où vous vous poseriez:
Il n'y a pas de diamant de problème avec les interfaces depuis un chargé de l'implémentation de l'interface doit fournir exactement une mise en œuvre de chacun des membres définies dans les interfaces. Donc, même si les deux interfaces définissent le même membre (avec la même signature, bien sûr) il y aura toujours une seule mise en œuvre.
C'est pourquoi j'ai commencé ma réponse: "l'héritage Multiple n'est pas possible." 🙂
merci beaucoup, j'ai obtenu mon erreur...:)
+1 pour la modélisation CrazyGansta BadAss Prédicateur Jules à l'aide de la programmation orientée objet. Il ne sera pas en frappant vous vers le bas avec une grande vengeance et de colère.
OriginalL'auteur Creynders
Bien il n'y a pas de possibilité de l'héritage multiple directement en AS3 comme beaucoup d'autres langages OOP.
De la programmation orientée objet est sur la réutilisation du code et comme la plupart d'entre nous veulent réutiliser le code écrit en plusieurs classes. Donc, si tu veux réutiliser le code (logique) au lieu de simplement les signatures, vous pourriez envisager de composition ou deligation approches et c'est probablement ce que vous avez lu quelque part, comme vous l'avez dit.
Dans la composition de ce que vous faites est au lieu d'hériter d'un baseclass dans la sous-classe, vous aurez une instance de la baseclass dans une sous-classe et ont toutes les méthodes
Ce n'est pas un hack mais en fait, une réelle et concrète de mise en œuvre adopté par les développeurs expérimentés dans de nombreux modèles de conception.
Espère que cette aide
OriginalL'auteur Solow Developer
Vous pouvez faire de l'héritage multiple à l'aide de l'interface.
Salut Swati, je peux mettre en œuvre dans votre exemple. Mais pouvez-vous m'envoyer votre code d'exemple pour moi par e-mail parce que, dans votre question, vous mentionnez uniquement une Interface B, Classe A, mais pas d'interface mentionnées C. j'ai Donc besoin de code . mon adresse email est [email protected]
Mrugesh: j'ai wriiten C par erreur. j'ai mis à jour mon code s'il vous plaît vérifier. merci pour votre réponse.
Qui une autre classe que vous souhaitez s'étend avec votre classe?
Pour l'instant je veux juste mettre en œuvre B Classe. Parce que B est une interface.
OriginalL'auteur Mrugesh
Euh, les gars!
Je peux vous montrer deux façons différentes pour "imiter" l'héritage multiple:
À l'aide de la fonctionnalité de #import: http://archive.darronschall.com/weblog/2006/10/multiple-inheritance-in-actionscript-3.html
N'oubliez pas que le code ActionScript est EcmaScript. C'est encore un prototype de base de la langue: http://jolierouge.net/2010/01/as3-multiple-inheritancemixins/
Je sais... pas de "vrais" MI, mais ils ressembler à un canard, parler comme un canard...
OriginalL'auteur Szilveszter Safar