Rheinwerk Design < openbook > Rheinwerk Design - Know-how für Kreative.
Know-how für Kreative

 << zurück
ActionScript 1 und 2 von Sascha Wolter (http://www.saschawolter.de/)
Objektorientierung und Codedesign mit Flash MX 2004
Buch: ActionScript 1 und 2

ActionScript 1 und 2
672 S., mit CD, Referenzkarte, 44,90 Euro
Rheinwerk Design
ISBN 3-89842-221-6
gp Kapitel 16 ActionScript 2.0
  gp 16.1 Klassen
    gp 16.1.1 class
    gp 16.1.2 Technisch gesehen
    gp 16.1.3 Klassenpfade
    gp 16.1.4 ASO (ActionScript Objekt)
  gp 16.2 Packages
    gp 16.2.1 import
  gp 16.3 Typisierung
  gp 16.4 Vererbung
    gp 16.4.1 extends
  gp 16.5 Schnittstellen
    gp 16.5.1 Interfaces erstellen
    gp 16.5.2 Implements
  gp 16.6 Öffentlich oder privat
  gp 16.7 Statisch
    gp 16.7.1 static
    gp 16.7.2 Öffentlich oder privat
    gp 16.7.3 Statisch versus Singleton
  gp 16.8 Getter und Setter
    gp 16.8.1 addProperty
    gp 16.8.2 Getter und Setter in ActionScript 2.0
  gp 16.9 Dynamisch
    gp 16.9.1 dynamic
  gp 16.10 Intrinsic


Rheinwerk Design - Zum Seitenanfang

16.4 Vererbung  downtop

Eine der großen Stärken der objektorientierten Programmierung liegt in der Vererbung, die einen hierarchischen Aufbau von Klassen erlaubt. Eine Freundin ist beispielsweise in den meisten Fällen eine Spezialisierung von Frau.

Zum Vergleich: ActionScript 1

Die klassische Schreibweise in ActionScript ist hier mehr als nur gewöhnungsbedürftig und verwendet ein auf Prototypen basierendes Konzept wie JavaScript. Dazu wird im Prototyp der Unterklasse eine Instanz der Oberklasse platziert, was dann zu einer Prototypenkette führt, die wie eine Vererbung funktioniert:

// ActionScript 1 Code!
ActionScript 2.0\Vererbung
function Frau() {
   // Definiere Eigenschaft
   this.launig = true;
}
// Definiere Fähigkeit
Frau.prototype.koche = function() {
   trace("lecker!");
};

function Freundin() {
   // Erbe Eigenschaften (Konstruktor)
   super();
   // Definiere Eigenschaft
   this.kreativ = true;
}
// Erbe Fähigkeiten (Prototyp)
Freundin.prototype = new Frau();
// Definiere Fähigkeit
Freundin.prototype.tanze = function() {
   trace("yippi!");
};

Rheinwerk Design - Zum Seitenanfang

16.4.1 extends  toptop

ActionScript 2.0

Um mit ActionScript 2.0 eine Klasse zu erstellen, die von einer anderen Klasse erbt, benötigen Sie das Schlüsselwort extends. Mit diesem geben Sie innerhalb der erbenden Unterklasse die zu vererbende Oberklasse an:

class Unterklasse extends Oberklasse {

}

Im folgenden Beispiel erbt die Klasse Freundin von der Klasse Frau alle Eigenschaften und Methoden:

// ActionScritp 2.0-Code in Klassendatei
class Frau {
   // Definiere Eigenschaft
   var launig;
   // Konstruktor (optional)
   function Frau() {
      // Setze Eigenschaft
      launig = true;
   }
   // Definiere Fähigkeit
   function koche() {
      trace("lecker!");
   }
}
// ActionScritp 2.0-Code in Klassendatei
class Freundin extends Frau {
   // Definiere Eigenschaft
   var kreativ;
   // Konstruktor (optional)
   function Freundin() {
      // Setze Eigenschaft
      kreativ = true;
   }
   // Definiere Fähigkeit
   function tanze() {
      trace("yippi!");
   }
}

Wie bereits in ActionScript 1 können Sie innerhalb einer Methode auch auf die Methode der Oberklasse zugreifen, indem super zum Einsatz kommt:

   function koche() {
      super.koche();
   }

Bedenken Sie aber bitte, dass letztendlich der Bytecode in der SWF-Datei sich so gut wie gar nicht von der Version mit der eigentümlichen Prototypen-Schreibweise unterscheidet. In erster Linie verbessert sich dadurch nur der Quellcode, was zu einer viel effizienteren Entwicklung führt. Denn es gibt kein Problem, das sich nicht auch mit ActionScript 1 lösen ließe – mit ActionScript 2.0 gelingt dies einfach nur viel eleganter!

Übrigens: Eine Mehrfachvererbung erlaubt auch ActionScript 2.0 nicht. Mit Hilfe von Schnittstellen (Interfaces) kann aber ein ähnliches Verhalten implementiert werden.

Kleine Unterschiede gibt es doch!

Zwar erzeugt der Flash-Compiler aus ActionScript 1 und ActionScript 2.0 denselben Bytecode, doch nicht ohne kleine Unterschiede. Beispielsweise wird bei der Vererbung eine Instanz der Oberklasse innerhalb der Prototypenkette der Unterklasse platziert, um so Vererbung zu ermöglichen (Seite 350). Doch im Gegensatz zu ActionScript 1 wird bei ActionScript 2.0 dafür der Konstruktor der Oberklasse nicht aufgerufen. Dies gilt aber nur, wenn das Projekt als Flash Player 7-Datei exportiert wird. Beim Export nach Flash 6 steht hier die Abwärtskompatibilität im Vordergrund.

 << zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: ActionScript 1 und 2
ActionScript 1 und 2
bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: JavaScript






 JavaScript


Zum Rheinwerk-Shop: jQuery






 jQuery


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Rheinwerk-Shop: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern