logo

Cuvânt cheie abstract Java

Cuvântul cheie abstract este folosit pentru a realiza abstractizarea în Java. Este un modificator fără acces care este folosit pentru a crea o clasă abstractă și o metodă.

Rolul unei clase abstracte este de a conține metode abstracte. Cu toate acestea, poate conține și metode non-abstracte. Metoda care este declarată cu cuvânt cheie abstract și nu are nicio implementare este cunoscută ca metodă abstractă.

Sintaxă:-

 abstract class Employee { abstract void work(); } 

Notă - Nu putem declara metode abstracte în clasa non-abstractă.

Regulile cuvintelor cheie abstracte

Nu

  • Un cuvânt cheie abstract nu poate fi folosit cu variabile și constructori.
  • Dacă o clasă este abstractă, nu poate fi instanțiată.
  • Dacă o metodă este abstractă, nu conține corpul.
  • Nu putem folosi cuvântul cheie abstract cu final .
  • Nu putem declara metode abstracte ca privat .
  • Nu putem declara metode abstracte ca static .
  • O metodă abstractă nu poate fi sincronizată.

A face

  • Un cuvânt cheie abstract poate fi folosit numai cu clasă și metodă.
  • O clasă abstractă poate conține constructori și metode statice.
  • Dacă o clasă extinde clasa abstractă, trebuie să implementeze și cel puțin una dintre metodele abstracte.
  • O clasă abstractă poate conține metoda principală și metoda finală.
  • O clasă abstractă poate conține metode abstracte supraîncărcate.
  • Putem declara clasa interioară locală ca fiind abstractă.
  • Putem declara metoda abstractă cu o clauză throw.

Exemple de cuvinte cheie abstracte

Exemplul 1: Clasă abstractă care conține metoda abstractă

 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(); } } 
Testează-l acum

Ieșire:

 Bike is running 

Exemplul 2: Clasă abstractă care conține metoda abstractă și non-abstractă

 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(); } } 
Testează-l acum

Ieșire:

 Bike is running Car is running 

Exemplul 3: Clasa abstracta care contine constructorul

 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(); } } 
Testează-l acum

Ieșire:

mylivecricket in for live cricket
 Constructor is invoked 

Exemplul 4: Clasă abstractă care conține metode abstracte supraîncărcate

 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'); } } 
Testează-l acum

Ieșire:

 abstract method is invoked overloaded abstract method is invoked 

Exemplul 5: Clasa abstractă interioară

 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(); } } 
Testează-l acum

Ieșire:

 inner abstract class is invoked 

Exemplul 6: clasă abstractă imbricată

 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(); } } 
Testează-l acum

Ieșire:

 nested abstract class is invoked