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();
}
}
Зачем и когда использовать абстрактные классы и методы?
Для обеспечения безопасности - скройте определенные детали и покажите только важные детали объекта.
Примечание. Абстракция также может быть достигнута с помощью интерфейсов , о которых вы узнаете больше в следующей главе.