//am7.java --- CopyLeft by tsaiwn@csie.nctu.edu.tw
import java.awt.*;
public class am7 extends MyApplet {
   public static void main(String[ ] args) {
      Animal a = new Animal(1);
      Mankind m = new Mankind(3);
         print("Animal talking...");
      a.talk( );
         println("");
      Cat cat = new Cat(2);
      cat.talk( );
         try { Thread.sleep(568); } catch (Exception e) {}
      m.talk( );  println("");
         try { Thread.sleep(568); } catch (Exception e) {}
         //newPlayFile("bye.au");
         System.exit(0);
   } // main
} // class am7

class Animal extends MyApplet {    // Animal is-a MyApplet (is-a Applet)
   protected int n = 0;
   public Animal(int n) { this.n = n; }
  //
   void talk( ) {
      for(int i=1; i <= n; ++i) { beep(); newPlayFile("chichi.au"); }
   }
} // class Animal

class Cat extends Animal {
   public Cat(int n) { super(n); }
    // new talk( ) for Mankind, 若不寫, 則會用原先 Animal 的 talk
   void talk( ) {
      print("Cat .. talking ... ");
      for(int i=1; i <= n; ++i) newPlayFile("meow.wav"); 
   }
} // class Cat

class Mankind extends Animal {
   public Mankind(int n) { super(n); }
  // new talk( ) for Mankind, 若不寫, 則會用原先 Animal 的 talk
   void talk( ) {
      print("\nMankind .. talking .. :");
      for(int i=1; i <= n; ++i) {
         newPlayFile("yahoo.au"); 
         try { Thread.sleep(123); } catch (Exception e) {}
      }
   }  /* talk ***/
} // class Mankind

