Abstract Class in Java
В Java абстрактный класс - это класс, который не может быть инстанциирован, то есть нельзя создать его объект непосредственно. Он служит в основном как базовый класс для других классов и определяет общие атрибуты и методы для этих классов.
Абстрактные классы объявляются с использованием ключевого слова "abstract" перед ключевым словом "class". Они могут содержать как обычные методы, так и абстрактные методы.
Пример абстрактного класса:
public abstract class Shape {
protected String color;
public Shape(String color) {
this.color = color;
}
public abstract double getArea(); // абстрактный метод
public void printColor() {
System.out.println("Цвет: " + color);
}
}
В этом примере класс `Shape` является абстрактным и имеет абстрактный метод `getArea()`, который не имеет реализации. Он будет реализован в конкретных подклассах `Circle` и `Rectangle`, которые наследуются от `Shape`.
Пример класса-наследника:
public class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
Здесь класс `Circle` наследует абстрактный класс `Shape` и реализует абстрактный метод `getArea()` с использованием формулы для вычисления площади окружности.
Таким образом, абстрактные классы в Java позволяют создавать общие элементы и функциональность для нескольких классов, а также предоставляют средства для обеспечения наследования и полиморфизма.