Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Текст к презентации ООП на Java.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
206 Кб
Скачать
☆

// Использование полиморфизма времени выполнения.

class Figure {

double diml;

double dim2;

Figure(double a, double b) {

diml = a;

dim2 = b;

}

double area() {

System.out.println("Площадь Figure не определена.");

return 0;

}

}

class Rectangle extends Figure {

Rectangle(double a, double b) {

super(a, b);

}

// переопределить area для прямоугольника

double area() {

System.out.println("Внутри Area для Rectangle.");

return diml * dim2;

}

}

class Triangle extends Figure {

Triangle(double a, double b) {

super(a, b);

}

// переопределить area для прямоугольного треугольника

double area() {

System.out.println("Внутри Area для Triangle.");

return diml * dim2 / 2;

}

}

class FindAreas {

public static void main(String args[]) {

Figure f = new Figure(10, 10);

Rectangle r = new Rectangle(9, 5);

Triangle t = new Triangle(10, 8);

Figure figref;

figref = r;

System.out.println("Площадь равна " + figref.area());

figref = t;

System.out.println("Площадь равна " + figref.area ());

figref = f;

System.out.println("Площадь равна " + figref.area ());

}

}

Результат работы:

Внутри Area для Rectangle.

Площадь равна 45.0

Внутри Area для Triangle.

Площадь равна 40.0

Площадь Figure не определена.

Площадь равна 0.0

Полиморфизм – это замечательная возможность сделать Ваши программы более короткими и изящными, хотя без этого можно обойтись (см. пример FindAreas2.java).

19