Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
д., при таком подходе придется менять существующий код и добавлять в него определения новых массивов, а также обработку содержащихся в них элементов.
Используя полиморфизм, мы можем значительно упростить реализацию подобной функциональности. Прежде всего, создадим общий родительский класс для всех наших классов. Пусть таким классом будет Point. В результате получим иерархию классов, которая изображена на рисунке 2.3.
У каждого из дочерних классов метод draw переопределен таким образом, чтобы отображать экземпляры каждого класса соответствующим образом.
Для описанной выше иерархии классов, используя полиморфизм, можно написать следующий код:
Point р[] = new Point[ 1000]; Р[0] = new Circle();
курс
Программирование на Java
Лекция 2_____________________ Основы объектно-ориентированного программирования
р[1] = new Point(); р[2] = new Вох(); р[3] = new Une();
for(int i = 0; i < p.length;i++) { if(p[i]!=null) p.draw();
}
В описанном выше примере массив р[] может содержать любые объекты, порожденные от наследников класса Point. При вызове какого-либо метода у любого из элементов этого массива будет выполнен метод того объекта, который содержится в ячейке массива. Например, если в ячейке р[0] находится объект Circle, то при вызове метода draw следующим образом:
p[0].draw()
нарисуется круг, а не точка.
В заключение приведем формальное определение полиморфизма.
Полиморфизм (polymorphism) - положение теории типов, согласно которому имена (например, переменных) могут обозначать объекты разных (но имеющих общего родителя) классов. Следовательно, любой объект, обозначаемый полиморфным именем, может по-своему реагировать на некий общий набор операций [2].
Примером использования перегрузки