41 lines
859 B
Java
41 lines
859 B
Java
// interfaces/Adventure.java
|
|
// ©2016 MindView LLC: see Copyright.txt
|
|
// Multiple interfaces.
|
|
|
|
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
|
|
}
|
|
}
|
|
/* Output: (None) */
|