-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMain01.java
More file actions
171 lines (138 loc) · 3.68 KB
/
Copy pathMain01.java
File metadata and controls
171 lines (138 loc) · 3.68 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
package objectOrientedProgramming;
public class Main01 {
public static void main(String[] args) {
for (String x1 : args) {
System.out.println(x1);
}
Main01.java_oop_constructor();
Main01.java_oop_extend();
Main01.java_oop_abstract();
Main01.java_oop_interface();
}
private static void java_oop_constructor() {
System.out.println("\njava_oop_constructor");
ZC1 x1 = new ZC1();
System.out.println(x1);
System.err.println(ZC1.getNumber());
x1.p1 = "olleh";
System.out.println(x1);
x1.set_p2("dlorw");
System.out.println(x1);
ZC1 x2 = new ZC1("hello", "world");
System.out.println(x2);
System.err.println(ZC1.getNumber());
}
private static void java_oop_extend() {
System.out.println("\njava_oop_extend");
ZC1 x1 = new ZC1("hello", "world");
ZC2 x2 = new ZC2("hello", "world");
ZC1 x3;
System.out.println("ZC1 = ZC1(xx,xx)");
x3 = x1;
System.out.println(x3 instanceof ZC1);
System.out.println(x3 instanceof ZC2);
System.out.println(x3);
System.out.println("ZC1 = ZC2(xx,xx)");
x3 = x2;
System.out.println(x3 instanceof ZC1);
System.out.println(x3 instanceof ZC2);
System.out.println(x3);
}
private static void java_oop_abstract() {
System.out.println("\njava_oop_abstract");
ZCAbstract00 x1 = new ZCAbstract01();
System.out.println(x1.hf0());
System.out.println(x1.hf1());
x1 = new ZCAbstract02();
System.out.println(x1.hf0());
System.out.println(x1.hf1());
}
private static void java_oop_interface() {
System.out.println("\njava_oop_interface");
ZCInterface00 x1 = new ZCInterface01();
System.out.println(x1.hf1());
x1 = new ZCInterface02();
System.out.println(x1.hf1());
}
}
class ZC1 {
public String p1;
private static int num = 0;
public ZC1() {
p1 = "hello";
p2 = "world";
num++;
}
public ZC1(String s1, String s2) {
p1 = s1;
p2 = s2;
num++;
}
public void set_p2(String s) {
p2 = s;
}
public String get_p2() {
return p2;
}
public String toString() {
return "ZC1(" + p1 + ", " + p2 + ")";
}
public static int getNumber() {
return num;
}
private String p2;
}
class ZC2 extends ZC1 {
public ZC2() {
super();
}
public ZC2(String s1, String s2) {
super(s1, s2);
}
@Override
public String toString() {
return "ZC2(" + this.p1 + ", " + this.get_p2() + ")";
}
}
abstract class ZCAbstract00 {
public String property = "ZCAbstract00";
public String hf0(){
return "hf0() in ZCAbstract00; property: " + this.property;
}
public abstract String hf1();
}
class ZCAbstract01 extends ZCAbstract00 {
@Override
public String hf0(){
return "hf0() in ZCAbstract01; property: " + property;
}
@Override
public String hf1() {
return "hf1() in ZCAbstract01";
}
}
class ZCAbstract02 extends ZCAbstract00 {
public ZCAbstract02(){
property = "ZCAbstract02";
}
@Override
public String hf1() {
return "hf2() in ZCAbstract02";
}
}
interface ZCInterface00 {
String hf1();
default String hf0(){
return "233";
}
}
class ZCInterface01 implements ZCInterface00 {
public String hf1() {
return "hf1() in ZCInterface01";
}
}
class ZCInterface02 implements ZCInterface00 {
public String hf1() {
return "hf1() in ZCInterface02";
}
}