Repository navigation
Expand file tree
/
Copy pathSuperClass.java
More file actions
84 lines (63 loc) · 1.94 KB
/
Copy pathSuperClass.java
File metadata and controls
84 lines (63 loc) · 1.94 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
class SuperClass {
interface BaseDefault {
default int value() { return 1; }
}
interface SpecificDefault extends BaseDefault {
default int value() { return 2; }
}
interface PrivateDefault {
private int value() { return 3; }
}
static class DefaultParent implements SpecificDefault, BaseDefault, PrivateDefault {}
static class DefaultChild extends DefaultParent {
int call() { return super.value(); }
}
static class ReverseDefaultParent implements BaseDefault, SpecificDefault, PrivateDefault {}
static class ReverseDefaultChild extends ReverseDefaultParent {
int call() { return super.value(); }
}
class InnerClass {
int field1;
long field2;
void test() {
System.out.println("test");
}
}
class InnerDerivedClass extends InnerClass {
int field3;
String field4;
}
class InnerLeafClass extends InnerDerivedClass {
@Override
void test() {
System.out.println("leaf");
}
void testSuper() {
super.test();
}
}
void run() {
InnerDerivedClass derived = null;
derived = new InnerDerivedClass();
derived.field1 = 0;
derived.field2 = 1;
derived.field3 = 2;
derived.field4 = "test";
InnerClass inner = derived;
inner.field1 = 2;
inner.field2 = 1234123412341234L;
System.out.println(derived.field1);
System.out.println(derived.field2);
System.out.println(derived.field3);
System.out.println(derived.field4);
derived.test();
InnerLeafClass leaf = new InnerLeafClass();
leaf.test();
leaf.testSuper();
System.out.println(new DefaultChild().call());
System.out.println(new ReverseDefaultChild().call());
}
public static void main(String[] args) {
new SuperClass().run();
}
}