logo

Java abstrakts atslēgvārds

Abstrakts atslēgvārds tiek izmantots, lai Java iegūtu abstrakciju. Tas ir bezpiekļuves modifikators, ko izmanto, lai izveidotu abstraktu klasi un metodi.

Abstraktās klases uzdevums ir ietvert abstraktas metodes. Tomēr tajā var būt arī neabstraktas metodes. Metode, kas ir deklarēta ar abstraktu atslēgvārdu un kurai nav nekādas ieviešanas, ir pazīstama kā abstrakta metode.

Sintakse:-

 abstract class Employee { abstract void work(); } 

Piezīme. Mēs nevaram deklarēt abstraktas metodes klasē, kas nav abstrakta.

Abstrakto atslēgvārdu noteikumi

Nedrīkst

  • Abstraktu atslēgvārdu nevar izmantot ar mainīgajiem un konstruktoriem.
  • Ja klase ir abstrakta, to nevar izveidot.
  • Ja metode ir abstrakta, tajā nav ietverts pamatteksts.
  • Mēs nevaram izmantot abstrakto atslēgvārdu ar galīgais .
  • Mēs nevaram pasludināt abstraktas metodes kā Privāts .
  • Mēs nevaram deklarēt abstraktās metodes kā statisks .
  • Abstraktu metodi nevar sinhronizēt.

Darāmās lietas

  • Abstraktu atslēgvārdu var izmantot tikai ar klasi un metodi.
  • Abstraktā klasē var būt konstruktori un statiskās metodes.
  • Ja klase paplašina abstrakto klasi, tai ir jāievieš arī vismaz viena no abstraktajām metodēm.
  • Abstraktajā klasē var būt galvenā metode un galīgā metode.
  • Abstraktā klasē var būt pārslogotas abstraktās metodes.
  • Mēs varam pasludināt vietējo iekšējo klasi kā abstraktu.
  • Mēs varam deklarēt abstrakto metodi ar metienu klauzulu.

Abstrakta atslēgvārda piemēri

1. piemērs: Abstraktā klase, kas satur abstrakto metodi

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 Bike is running 

2. piemērs. Abstraktā klase, kas satur abstrakto un neabstrakto metodi

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 Bike is running Car is running 

3. piemērs: Abstrakta klase, kurā ir konstruktors

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 Constructor is invoked 

4. piemērs: Abstrakta klase, kas satur pārslogotas abstraktās metodes

 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'); } } 
Izmēģiniet to tūlīt

Izvade:

 abstract method is invoked overloaded abstract method is invoked 

5. piemērs: Iekšējā abstraktā klase

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 inner abstract class is invoked 

6. piemērs. Ligzdota abstraktā klase

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 nested abstract class is invoked