Arrays and ArrayLists are polymorphic
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...