Skip to content

Commit f066478

Browse files
authored
Create tutorial_52.java
1 parent cfc6ac3 commit f066478

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

code/tutorial_52.java

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
//
2+
//
3+
public class Driver {
4+
5+
public static void main(String[] args) {
6+
String[] friends = {"jim","kate","bill","mark","devin","alice","melvin","jeremy","bob"};
7+
String space = " ";
8+
9+
// example 1 - normal show method
10+
Messenger messager1 = new MyMessenger(friends);
11+
messager1.show();
12+
13+
// example 2 - create a class to override the show method
14+
Messenger messager2 = new BetterMessenger(friends);
15+
messager2.show();
16+
17+
// example 3 - create an anonymous class to override the show method
18+
Messenger messager3 = new MyMessenger(friends) {
19+
public void show() {
20+
for (String name : contactList) {
21+
System.out.print(name + " ");
22+
}
23+
System.out.println();
24+
}
25+
};
26+
messager3.show();
27+
28+
// example 4 - create an anonymous class to implement the entire interface
29+
final String sp = space;
30+
final String[] names = friends;
31+
Messenger messager = new Messenger() {
32+
33+
public void send(String message) {
34+
for (String name : names) {
35+
System.out.println(name + ": " + message);
36+
}
37+
}
38+
39+
public void show() {
40+
for (String name : names) {
41+
System.out.print(name + sp);
42+
}
43+
System.out.println();
44+
}
45+
};
46+
messager.show();
47+
48+
// changing space variable now works because we created the sp variable.
49+
space = " ";
50+
}
51+
52+
}
53+
//
54+
//
55+
class MyMessenger implements Messenger {
56+
57+
protected String[] contactList;
58+
59+
public MyMessenger(String[] names) {
60+
contactList = names;
61+
}
62+
63+
public void send(String message) {
64+
for (String name : contactList) {
65+
System.out.println(name + ": " + message);
66+
}
67+
}
68+
69+
public void show() {
70+
for (String name : contactList) {
71+
System.out.println(name);
72+
}
73+
}
74+
75+
}
76+
//
77+
//
78+
class BetterMessenger extends MyMessenger {
79+
80+
public BetterMessenger (String[] names) {
81+
super(names);
82+
}
83+
84+
@Override
85+
public void show() {
86+
for (String name : contactList) {
87+
System.out.print(name + " ");
88+
}
89+
System.out.println();
90+
}
91+
}
92+
//
93+
//
94+
interface Messenger {
95+
96+
void send(String message);
97+
void show();
98+
99+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy