Java Абстрактный класс
Абстрактный класс в Java является классом, который предоставляет реализацию для общего набора методов, но не может быть создан в виде объекта. Он служит в качестве базового класса для производных классов и предоставляет общие методы и поля, которые могут быть использованы в этих производных классах.
Для определения абстрактного класса в Java используется ключевое слово "abstract" перед объявлением класса. Это указывает компилятору, что класс является абстрактным и не может быть создан непосредственно. Вместо этого, объекты абстрактного класса могут быть созданы только через создание экземпляров его производных классов.
Пример абстрактного класса в Java:
abstract class Shape {
protected String color;
public Shape(String color) {
this.color = color;
}
public abstract double getArea();
public abstract double getPerimeter();
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return color;
}
}
В этом примере абстрактный класс "Shape" определяет общие методы и поля, которые будут использоваться в производных классах, представляющих различные геометрические фигуры. Методы "getArea" и "getPerimeter" объявлены абстрактными, поскольку их конкретная реализация зависит от конкретной фигуры, которая будет наследовать этот абстрактный класс.
Пример производного класса, наследующего абстрактный класс "Shape":
class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
/**
* Расчитывает площадь окружности.
*
* @return Площадь окружности.
*/
public double getArea() {
return Math.PI * radius * radius;
}
/**
* Расчитывает периметр окружности.
*
* @return Периметр окружности.
*/
public double getPerimeter() {
return 2.0 * Math.PI * radius;
}
}
В этом примере класс "Circle" наследует абстрактный класс "Shape" и предоставляет реализацию абстрактных методов "getArea" и "getPerimeter" для расчета площади и периметра окружности соответственно. Конструктор класса "Circle" также вызывает конструктор суперкласса "Shape" для установки цвета фигуры.
Таким образом, абстрактные классы в Java позволяют определить общий набор методов и полей, которые будут использоваться в производных классах. Они предоставляют архитектурную основу для создания иерархии классов и обеспечивают гибкость и удобство в программировании на Java.