Java. Урок 24. Полиморфизм

В данной статье мы рассмотрим полиморфизм. Он представляет собой один из краеугольных камней ООП. Суть полиморфизма заключается в том, что вы можете использовать наследников, как родителей. При этом, если в классе-наследнике был переопределен какой — то метод, то вызовется он.
Рассмотрим простой пример. Пусть у нас есть некоторый класс Shape(фигура), в котором есть только один метод рисовать. Очевидно, что в классе Shape он ничего делать не будет, потому что не понятно, что собственно говоря надо отрисовать, какую фигуру:

1
2
3
4
5
public class Shape {
    public void draw() {
       //ничего не делаем
    }
}

После этого мы создаем различные классы-наследники: Square (квадрат), Сircle (круг) и Triangle:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Square extends Shape {
    public void draw() {
        System.out.println("Квадрат");
    }
}

public class Сircle extends Shape {
    public void draw() {
        System.out.println("Круг");
    }
}

public class Triangle extends Shape {
    public void draw() {
        System.out.println("Треугольник");
    }
}

Как вы могли заметить в наследниках у нас переопределен метод draw.
Теперь увидим, в чем заключается удивительная возможность полиморфизма:

1
2
3
4
5
Shape[] a = new Shape[]{new Shape()new Triangle()new Square()new Сircle()};

for(int i = 0; i < a.length; i++) {
    a[i].draw();
}

Выведет:
Треугольник
Квадрат
Круг
Таким образом каждый класс наследник вызвал именно свой метод draw, вместо того, чтобы вызвать пустой метод draw из класса Shape. В следующих уроках мы поймем зачем может понадобится такой подход.

Категория: Java | Добавил: ghost_mod (29.09.2016)
Просмотров: 381 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: