Учебники по Java

Ява ГЛАВНАЯ Введение в Java Начало работы с Java Синтаксис Java Java-комментарии Java-переменные Типы данных Java Приведение типов Java Операторы Java Java-строки Java-математика Логические значения Java Java, если...иначе Java-переключатель Java-цикл во время выполнения Java для цикла Перерыв/продолжение Java Массивы Java

Java-методы

Java-методы Параметры метода Java Перегрузка метода Java Область применения Java Java-рекурсия

Java-классы

Java ООП Классы/объекты Java Атрибуты класса Java Методы класса Java Конструкторы Java Модификаторы Java Инкапсуляция Java Java-пакеты/API Наследование Java Java-полиморфизм Внутренние классы Java Java-абстракция Java-интерфейс Перечисления Java Пользовательский ввод Java Дата Java Список массивов Java Связанный список Java Java HashMap Набор хэшей для Java Java-итератор Классы-оболочки Java Исключения Java Java регулярное выражение Java-потоки Java-лямбда

Обработка файлов Java

Java-файлы Создание/запись файлов Java Файлы чтения Java Java Удалить файлы

Java Как

Добавить два числа

Справочник по Java

Ключевые слова Java Строковые методы Java Java математические методы

Примеры Java

Примеры Java Компилятор Java Java-упражнения Java-викторина Java-сертификат


Java -абстракция


Абстрактные классы и методы

Абстракция данных — это процесс сокрытия определенных деталей и показа пользователю только важной информации.
Абстракция может быть достигнута либо с помощью абстрактных классов , либо с помощью интерфейсов (о которых вы узнаете больше в следующей главе).

Ключевое abstractслово является модификатором доступа, используемым для классов и методов:

  • Абстрактный класс: это ограниченный класс, который нельзя использовать для создания объектов (для доступа к нему он должен быть унаследован от другого класса).

  • Абстрактный метод: может использоваться только в абстрактном классе и не имеет тела. Тело предоставляется подклассом (наследуется от).

Абстрактный класс может иметь как абстрактные, так и обычные методы:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

Из приведенного выше примера невозможно создать объект класса Animal:

Animal myObj = new Animal(); // will generate an error

Чтобы получить доступ к абстрактному классу, он должен быть унаследован от другого класса. Преобразуем класс Animal, который мы использовали в главе « Полиморфизм », в абстрактный класс:

Помните из главы «Наследование» , что мы используем extendsключевое слово для наследования от класса.

Пример

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Зачем и когда использовать абстрактные классы и методы?

Для обеспечения безопасности - скройте определенные детали и покажите только важные детали объекта.

Примечание. Абстракция также может быть достигнута с помощью интерфейсов , о которых вы узнаете больше в следующей главе.