Apache Adobe Flex TutorialTutoriaux Adobe Flex & AIR en Français

22sept/080

Flex ActionScript – Héritage en ActionScript 3

Vous pouvez créer de nouvelles classes (appelées sous-classes) qui héritent d'une classe existante (appelée super-classe). Vous pouvez le faire en utilisant le mot-clé "extends" quand vous déclarez une classe. Le mot-clé extends doit suivre le nom de la classe et doit être suivi par le nom de la classe dont vous voulez hériter. Le code suivant définit une classe B, qui hérite d'une classe fictive A:

package com.exemple{
	import com.exemple.A;
	public class B extends A{
	}
}

ActionScript permet d'hériter de seulement une super-classe. La sous-classe hérite de l'implémentation complète de la super-classe, mais elle peut seulement accéder aux propriétés/méthodes déclarées public ou protected. Les propriétés qui sont déclarées private ne sont jamais accessible en dehors de la classe ou même des sous-classes. Les classes qui appartiennent au même package peuvent accéder aux propriétés déclarées internal.


Voici un exemple pour la super-classe A:

package com.exemple {
	public class A {
		private var _one:String;
		protected var _two:String;
		public function A{
			initialize();
		}
		private function initialize():void{
			_one = "one";
			_two = "two";
		}
		public function run():void{
			trace ("A");
		}
	}
}

Dans cet exemple, B (qui est définit comme sous-classe de A) peut accéder à _two et run() mais pas à _one et initialize().
Si une sous-classe veut implémenter sa propre implémentation pour une méthode dont elle hérite d'une super-classe, elle peut le faire en faisant un override. Normalement, une sous-classe hérite de manière aveugle de toute l'implémentation d'une super-classe. Cependant, quand vous faîtes un override sur une méthode, vous indiquez à la sous-classe qu'elle ne doit pas utiliser la définition présente dans la super-classe, mais plutôt celle qui est dans la sous-classe.
Pour faire un override sur une méthode, vous devez utiliser le mot-clé override dans la déclaration de méthode. L'exemple suivant override la méthode run():

package com.exemple{
	import com.exemple.A;
	public class B extends A{
		override public function run():void{
			trace ("B");
		}
	}
}

Quand une sous-classe override une méthode de la super-classe, la méthode de la sous-classe doit avoir la même signature que la méthode de base (paramètres, type de return, modifier).

Articles similaires

Commentaires (0) Trackbacks (0)

Aucun commentaire pour l'instant


Leave a comment

(required)

Aucun trackbacks pour l'instant