Mega Code Archive

 
Categories / Java / Language Basics
 

Multiple interfaces

// : c08:Adventure.java // Multiple interfaces. // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002 // www.BruceEckel.com. See copyright notice in CopyRight.txt. interface CanFight {   void fight(); } interface CanSwim {   void swim(); } interface CanFly {   void fly(); } class ActionCharacter {   public void fight() {   } } class Hero extends ActionCharacter implements CanFight, CanSwim, CanFly {   public void swim() {   }   public void fly() {   } } public class Adventure {   public static void t(CanFight x) {     x.fight();   }   public static void u(CanSwim x) {     x.swim();   }   public static void v(CanFly x) {     x.fly();   }   public static void w(ActionCharacter x) {     x.fight();   }   public static void main(String[] args) {     Hero h = new Hero();     t(h); // Treat it as a CanFight     u(h); // Treat it as a CanSwim     v(h); // Treat it as a CanFly     w(h); // Treat it as an ActionCharacter   } } ///:~