Computer[] labComputers = new Computer[10];
с
public class Computer {
...
void toString(){
// print computer specs
}
}
public class Notebook extends Computer{
...
void toString(){
// print computer specs + laptop color
}
}
каждая индексированная переменная labComputers[i] может ссылаться либо на объект Computer, либо на объект Notebook, потому что Notebook является подклассом Computer. Для вызова метода labComputers[i].toString(), полиморфизм гарантирует, что вызывается правильный метод toString.
Интересно, что если мы делаем
Notebook[] labComputers = new Notebook[10];
какой тип или ошибка я получу, если ссылаюсь на объект Computer и объект Notebook