Рассмотрим класс Shape как пример базового класса, от которого отходят многие фигуры, такие как Rectangle и Circle, как производные классы. Эти классы включают метод getArea (), который вычисляет площадь соответствующей формы.
Давайте реализуем классы Base и Derived.
Класс формы
Класс Shape имеет только один общедоступный метод под названием getArea (). Давайте посмотрим, как реализован класс Shape.
Прямоугольник Класс
Рассмотрим класс Rectangle, который является расширением класса Shape. Он имеет два элемента данных, ширину и высоту, и использует метод getArea () для возврата площади прямоугольника. Давайте посмотрим, как реализован класс Rectangle.
Круг Класс
Рассмотрим класс Circle, который является расширением класса Shape. Он имеет только один член данных, radius, и использует метод getArea () для возврата площади круга. Давайте посмотрим, как реализован класс Circle.
Полная программа
Теперь, объединив все классы и вызвав метод getArea (), посмотрите, что произойдет.
Вывод
Area of the Circle: 12.56 Area of the Rectangle: 4.0
Как это работает?
Мы объявили массив классов Shape размером 2 в функции main. Кроме того, объекты классов Rectangle и Circle с индексами 0 и 1 соответственно. Метод getArea () теперь возвращает площадь соответствующей формы. Вот как работает полиморфизм.
Надеюсь, это поможет. Поделитесь и своими мыслями.