РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
55 of 1163 menu

Ключевое слово abstract

Ключевое слово abstract применяется к классам и методам. Абстрактный класс не может быть создан с помощью оператора new, он служит базой для других классов. Абстрактный метод не содержит тела (реализации) и обязательно должен быть переопределен в неабстрактном классе-наследнике. Если класс содержит хотя бы один абстрактный метод, он сам должен быть объявлен как abstract.

Синтаксис

// Абстрактный класс abstract class ClassName { // Абстрактный метод (без тела) abstract void methodName(); }

Пример

Давайте создадим абстрактный класс Shape с абстрактным методом area и реализуем его в классе Rectangle:

abstract class Shape { abstract double area(); } class Rectangle extends Shape { double width; double height; Rectangle(double width, double height) { this.width = width; this.height = height; } @Override double area() { return width * height; } } public class Main { public static void main(String[] args) { Rectangle rect = new Rectangle(3, 4); System.out.println(rect.area()); } }

Результат выполнения кода:

12.0

Пример

Абстрактный класс может содержать как абстрактные, так и обычные методы с реализацией. Давайте рассмотрим пример:

abstract class Animal { abstract void makeSound(); void sleep() { System.out.println("Sleeping..."); } } class Dog extends Animal { @Override void makeSound() { System.out.println("Woof"); } } public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.makeSound(); dog.sleep(); } }

Результат выполнения кода:

"Woof" "Sleeping..."

Пример

Попытка создать объект абстрактного класса напрямую приведет к ошибке компиляции:

abstract class Shape { abstract double area(); } public class Main { public static void main(String[] args) { // Shape shape = new Shape(); // Ошибка компиляции System.out.println("Cannot instantiate abstract class"); } }

Результат выполнения кода:

"Cannot instantiate abstract class"

Смотрите также

  • ключевое слово extends,
    которое используется для наследования классов
  • ключевое слово implements,
    которое используется для реализации интерфейсов
  • ключевое слово interface,
    которое определяет контракт для классов
  • ключевое слово inheritance,
    которое описывает механизм наследования в Java
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить