The example then went on to show you how you can define slightly different types of things and keep them all in the same list, with the program working out at run time which particular piece of code to run (polymorphism) with the detailed logic or how to deal with the data hidden with (encapsulated) the file that describes the class (package / module).