Flash / Flex / ActionScript/Class/polymorphism

Материал из Web эксперт
Перейти к: навигация, поиск

If you want the toString( ) method of Subclass to return a different value, you"ll need to override it in the subclass

   <source lang="java">

   class Superclass {
       public function Superclass(  ) {}
       public function toString(  ):String {
           return "Superclass.toString(  )";
       }
   }
   class Subclass extends Superclass {
       public function Subclass(  ) {}
       override public function toString(  ):String {
           return "Subclass.toString(  )";
       }
   }
       </source>
   
  


Implementing Subclass Versions of Superclass Methods

   <source lang="java">

By default, Subclass inherits the toString( ) method as it"s implemented in Superclass: package{

 import flash.display.Sprite;
 
 public class Main extends Sprite{
   public function Main(){
       var example:Subclass = new Subclass(  );
       
       trace(example.toString(  )); // Displays: Superclass.toString(  )
   }
 }

} class Superclass {

       public function Superclass(  ) {}
       public function toString(  ):String {
           return "Superclass.toString(  )";
       }
   }

class Subclass extends Superclass {

       public function Subclass(  ) {}

}

       </source>
   
  


Polymorphism Demo

   <source lang="java">

 class UnpaidIntern extends Employee {
   override public function receivePayment():Number {
     return 0;
   }
 }
 class Manager extends Employee {
 
   override public function receivePayment():Number {
     return baseSalary*3;
   }
 }
 class Engineer extends Employee {
   override public function receivePayment():Number {
     return this.baseSalary*2;
 }
 }
 class Employee {
   internal var baseSalary:Number = 1000;
   public function receivePayment():Number {
     return this.baseSalary;
   }
 }
       </source>