Ключове слово abstract використовується для досягнення абстракції в Java. Це модифікатор без доступу, який використовується для створення абстрактного класу та методу.
Роль абстрактного класу полягає в тому, щоб містити абстрактні методи. Однак він також може містити неабстрактні методи. Метод, який оголошено за допомогою ключового слова abstract і не має жодної реалізації, відомий як абстрактний метод.
просте число в java
Синтаксис: -
abstract class Employee { abstract void work(); }
Примітка. Ми не можемо оголосити абстрактні методи в неабстрактному класі.
Правила абстрактного ключового слова
Не варто
- Ключове слово abstract не можна використовувати зі змінними та конструкторами.
- Якщо клас є абстрактним, його не можна створити.
- Якщо метод є абстрактним, він не містить тіла.
- Ми не можемо використовувати ключове слово abstract із the остаточний .
- Ми не можемо оголосити абстрактні методи як приватний .
- Ми не можемо оголосити абстрактні методи як статичний .
- Абстрактний метод не можна синхронізувати.
робити
- Ключове слово abstract можна використовувати лише з класом і методом.
- Абстрактний клас може містити конструктори та статичні методи.
- Якщо клас розширює абстрактний клас, він також повинен реалізувати принаймні один із абстрактних методів.
- Абстрактний клас може містити основний метод і кінцевий метод.
- Абстрактний клас може містити перевантажені абстрактні методи.
- Ми можемо оголосити локальний внутрішній клас як абстрактний.
- Ми можемо оголосити абстрактний метод за допомогою пропозиції throw.
Приклади анотації Ключове слово
Приклад 1: абстрактний клас, що містить абстрактний метод
abstract class Vehicle { abstract void bike(); } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample1 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); } }Перевірте зараз
Вихід:
Bike is running
Приклад 2: абстрактний клас, що містить абстрактний і неабстрактний метод
abstract class Vehicle { abstract void bike(); void car() { System.out.println('Car is running'); } } class Honda extends Vehicle { @Override void bike() { System.out.println('Bike is running'); } } public class AbstractExample2 { public static void main(String[] args) { Honda obj=new Honda(); obj.bike(); obj.car(); } }Перевірте зараз
Вихід:
Bike is running Car is running
Приклад 3: абстрактний клас, що містить конструктор
abstract class Vehicle { String msg; Vehicle(String msg) { this.msg=msg; } void display() { System.out.println(msg); } } class Honda extends Vehicle { Honda(String msg) { super(msg); } } public class AbstractExample3 { public static void main(String[] args) { Honda obj=new Honda('Constructor is invoked'); obj.display(); } }Перевірте зараз
Вихід:
Constructor is invoked
Приклад 4: абстрактний клас, що містить перевантажені абстрактні методи
abstract class Vehicle { abstract void display(); abstract void display(String msg); } class Honda extends Vehicle { @Override void display() { System.out.println('abstract method is invoked'); } @Override void display(String msg) { System.out.println(msg); } } public class AbstractExample4 { public static void main(String[] args) { Honda obj=new Honda(); obj.display(); obj.display('overloaded abstract method is invoked'); } }Перевірте зараз
Вихід:
abstract method is invoked overloaded abstract method is invoked
Приклад 5: внутрішній абстрактний клас
class Vehicle { abstract class Car { abstract void display(); } class Honda extends Car { @Override void display() { System.out.println('inner abstract class is invoked'); } } } public class AbstractExample5 { public static void main(String[] args) { Vehicle obj=new Vehicle(); Vehicle.Car c=obj.new Honda(); c.display(); } }Перевірте зараз
Вихід:
кислотні властивості
inner abstract class is invoked
Приклад 6: Вкладений абстрактний клас
abstract class Vehicle { abstract class Car { abstract void display(); } } class Honda extends Vehicle { class FourWheller extends Car { @Override void display() { System.out.println('nested abstract class is invoked'); } } } public class AbstractExample6 { public static void main(String[] args) { Vehicle obj=new Honda(); Honda h=(Honda)obj; Honda.FourWheller fw=h.new FourWheller(); fw.display(); } }Перевірте зараз
Вихід:
nested abstract class is invoked