When an array is created, it remembers what type of data it is intended for storage. So, if you have classes
class Employee { .. }
class Manager extends Employee { .. }
and you will create an array
Manager[] arrM = new Manager[10];
Array, Manager . , Manager, -
arrM[0] = new Manager();
,
arrM[0] = new Employee();
throws java.lang.ArrayStoreException: Employee , Employee .
,
, , , , Employee , . , Menager hire(...) -, Employee ( ). ,
mans[0].hire(new Employee("Tom");
emps[0] = new Employee ("Charlie"); , Employee emps[0]? mans emps , , mans[0].hire(new Employee("Tom") Employee("Charlie"), -, Employee hire.
(Employee) .