We already know that we can put objects into arrays and ArrayList
objects. However, being polymorphic means that they can handle objects of multiple distinct types as long as they have a common parent type – all within the same array or ArrayList
.
In Chapter 10, Object-Oriented Programming, we learned that polymorphism means many forms. But what does it mean to us in the context of arrays and ArrayList
?
In its simplest form, it means that any subclass can be used as part of the code that uses the super-class.
For example, if we have an array of Animals
, we can put any object that is a subclass of Animal
in the Animals
array, such as Cat
and Dog
.
This means we can write code that is simpler, easier to understand, and easier to change:
// This code assumes we have an Animal class // And we have a Cat and Dog class that // inherits from Animal val myAnimal = Animal() val myDog = Dog() val myCat = Cat() val myAnimals = arrayOfNulls<Animal>(10) myAnimals...