Java Abstraction
Оновлено: 22.05.2023
Абстрактні класи та методи
Абстрагування даних - це процес приховування певних деталей і відображення користувачеві лише найнеобхіднішої інформації. Абстракція може бути досягнута за допомогою абстрактних класів або інтерфейсів (про які ви дізнаєтесь більше в наступному розділі).
Ключове слово 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, який ми використовували у розділі Поліморфізм, на абстрактний клас:
// 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();
}
}