Абстракция - это процесс выделения общих характеристик и отличительных признаков объектов и явлений, а также скрытие деталей реализации, которые не являются существенными для восприятия объекта. В объектно-ориентированном программировании абстракция используется для создания абстрактных классов и интерфейсов, которые определяют только общее поведение объектов, не вдаваясь в детали их реализации. Абстрактный класс - это класс, который не может быть инстанцирован (т.е. создан объект класса), и предназначен для наследования другими классами. Он содержит хотя бы один абстрактный метод - метод без реализации, который должен быть определен в подклассе. Примером абстракции может быть класс "Фигура", который описывает свойства и методы, общие для всех фигур. Конкретные типы фигур, такие как квадрат или круг, могут наследоваться от этого класса и добавлять свои уникальные свойства и методы. Вот пример класса "Фигура": abstract class Shape {
String color;
public Shape(String color) {