abstract class Animal { } class Dillo extends Animal { double weight; boolean alive; Dillo(double weight, boolean alive) { this.weight = weight; this.alive = alive; } } class Posn { int x; int y; Posn(int x, int y) { this.x = x; this.y = y; } } class Ant extends Animal { double weight; Posn loc; Ant(double weight, Posn loc) { this.weight = weight; this.loc = loc; } } class Cage { Animal a1; Animal a2; Cage(Animal a1, Animal a2) { this.a1 = a1; this.a2 = a2; } } abstract class Grade { } class NoGrade extends Grade { NoGrade() { } } class NumGrade extends Grade { int n; NumGrade(int n) { this.n = n; } }