interface Monster {
  void menace();
}interface DangerousMonster extends Monster {
  void destroy();
}interface Lethal {
  void kill();
}class DragonZilla implements DangerousMonster {
  public void menace() {}
  public void destroy() {}
}interface Vampire extends DangerousMonster, Lethal {
  void drinkBlood();
}class VeryBadVampire implements Vampire {
  public void menace() {}
  public void destroy() {}
  public void kill() {}
  public void drinkBlood() {}
}public class HorrorShow {
  static void u(Monster b) { b.menace(); }
  static void v(DangerousMonster d) {
    d.menace();
    d.destroy();
  }
  static void w(Lethal l) { l.kill(); }
  public static void main(String[] args) {
    DangerousMonster barney = new DragonZilla();
    u(barney);
    v(barney);
    Vampire vlad = new VeryBadVampire();
    u(vlad);
    v(vlad);
    w(vlad);
  }
} ///:~用匿名实现DangerousMonster和Vampire
求教。

解决方案 »

  1.   

    DangerousMonster barney =new DangerousMonster(){
    public  void  menace()   {} 
    public  void  destroy()   {} 
    };
    Vampire vlad = new Vamprire(){
        public   void   menace()   {} 
        public   void   destroy()   {} 
        public   void   kill()   {} 
        public   void   drinkBlood()   {} 
    };
      

  2.   

    class   DragonZilla   implements   DangerousMonster   { 
        public   void   menace()   {} 
        public   void   destroy()   {} 
    } class   VeryBadVampire   implements   Vampire   { 
        public   void   menace()   {} 
        public   void   destroy()   {} 
        public   void   kill()   {} 
        public   void   drinkBlood()   {} 
    } 是这2个变成匿名的 
      

  3.   

    interface Monster {
      void menace();
    }interface DangerousMonster extends Monster {
      void destroy();
    }interface Lethal {
      void kill();
    }class DragonZilla  {
    public DangerousMonster get(){
    return new DangerousMonster() {

    public void menace() {}
      public void destroy() {}
      };
    }
     
      


     
    }interface Vampire extends DangerousMonster, Lethal {
      void drinkBlood();
    }class VeryBadVampire {
     public Vampire get2(){
     
      return new Vampire()
      {
      public void drinkBlood(){}
      public void menace() {} 
      public void kill() {}
      public void destroy() {}
     
      };
      }
     
     
     
     
     
     

     
      
      
    }public class HorrorShow {
      static void u(Monster b) { b.menace(); }
      static void v(DangerousMonster d) {
        d.menace();
        d.destroy();
      }
      static void w(Lethal l) { l.kill(); }
      public static void main(String[] args) {
        DragonZilla ba = new  DragonZilla();
        DangerousMonster barney = ba.get();
        u(barney);
        v(barney);
        VeryBadVampire vl = new VeryBadVampire();
        Vampire vlad = vl.get2();
        u(vlad);
        v(vlad);
        w(vlad);
          }
    } ///:~
    我自己改好了。