Inheritance and Arrays
Java permits array to be assigned to a variable that is declared as an array of the parent class
Dog [ ] dogs = new Dog[10]; // an array of dog values
Animal [ ] pets = dogs; // legal
pets[2] = aCat; // is this legal?
To prevent, Java actually performs a run-time check on assignments to arrays of objects.