- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
public class Main {
public static void main(String[] args) {
ThreeD[] f = {new ThreeD(5, 9, 7), new FourD(1,3,8,5)};
Coords<ThreeD> c = new Coords<>(f);
showXYZ(c);
FiveD[] x = new FiveD[] {new FiveD(11,22,3,4, 123)};
Coords<FiveD> b = new Coords<>(x);
showAll(b);
FiveD[] z = new FiveD[] {new FiveD(1,2,1,6,5)};
Coords<FiveD> zz = new Coords<>(z);
}
private static void showXY(Coords<? super FourD> c) {
for(int i = 0; i < c.coords.length; i++) {
System.out.println(c.coords[i].x +" "+ c.coords[i].y+" ");
}
}
private static void showXYZ(Coords<? extends ThreeD> c) {
for(int i = 0; i < c.coords.length; i++) {
System.out.println(c.coords[i].x +" "+ c.coords[i].y+" "+c.coords[i].z+" ");
}
}
private static void showAll(Coords<? extends FiveD> c) {
for(int i = 0; i < c.coords.length; i++) {
System.out.println(c.coords[i].x +" "+ c.coords[i].y+" "+c.coords[i].z+" "+c.coords[i].t+" "+c.coords[i].m);
}
}
}
class Coords<T extends TwoD> {
T[] coords;
Coords(T[] o) {
coords = o;
}
}
class TwoD {
int x,y;
TwoD(int a, int b) {
x = a;
y = b;
}
}
class ThreeD extends TwoD {
int z;
ThreeD(int a, int b, int c) {
super(a, b);
z = c;
}
}
class FourD extends ThreeD {
int t;
FourD(int a, int b, int c, int d) {
super(a, b, c);
t = d;
}
}
class FiveD extends FourD {
int m;
FiveD(int a, int b, int c, int d, int e) {
super(a, b, c, d);
m = e;
}
}