Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

abstract

Помечает класс, объект которого создать нельзя, и метод без тела, который реализуют наследники.

Доступно с: Java 1.0

Синтаксис

abstract class Name { abstract Type method(); }

Примеры

Общая логика в абстрактном классе, детали — в наследниках:

abstract class Employee {
    String name;
 
    Employee(String name) {
        this.name = name;
    }
 
    abstract double salary();
 
    String payslip() {
        return name + ": " + salary();
    }
}
 
class Manager extends Employee {
    Manager(String name) { super(name); }
    double salary() { return 5000; }
}
 
void main() {
    Employee e = new Manager("Anna");
    IO.println(e.payslip());
    // new Employee("Oleg");  // error: Main.Employee is abstract; cannot be instantiated
}

Результат:

Anna: 5000.0

Примечания

Абстрактный класс может иметь поля, конструкторы и обычные методы, интерфейс — нет (кроме констант). Если наследник не реализует все абстрактные методы, он тоже должен быть abstract.

См. также

  • interface — Объявляет интерфейс — набор методов, которые обязуется реализовать класс.
  • extends — Объявляет наследование: класс получает поля и методы родителя.
  • super — Обращается к родительскому классу: вызывает его конструктор или его версию метода.

В учебнике

  • Абстрактные классы — Абстрактные классы и методы в Java: ключевое слово abstract, общий код для подклассов и запрет на создание объектов.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.