-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathAdventure.java
More file actions
66 lines (50 loc) · 1.16 KB
/
Adventure.java
File metadata and controls
66 lines (50 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package interfaces;
/**
* RUN:
* javac interfaces/Adventure.java && java interfaces.Adventure
* OUTPUT:
* ActionCharacter.fight()
* Hero.swim()
* Hero.fly()
* ActionCharacter.fight()
*/
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);
u(h);
v(h);
w(h);
}
}
interface CanFight {
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() { System.out.println("ActionCharacter.fight()"); }
}
class Hero extends ActionCharacter
implements CanFight, CanSwim, CanFly {
// public void fight() { System.out.println("Hero.fight()"); }
public void swim() { System.out.println("Hero.swim()"); }
public void fly() { System.out.println("Hero.fly()"); }
}