logo

Java abstrakt nøkkelord

Det abstrakte nøkkelordet brukes for å oppnå abstraksjon i Java. Det er en ikke-tilgangsmodifikator som brukes til å lage abstrakt klasse og metode.

Rollen til en abstrakt klasse er å inneholde abstrakte metoder. Det kan imidlertid også inneholde ikke-abstrakte metoder. Metoden som er deklarert med abstrakt nøkkelord og ikke har noen implementering er kjent som en abstrakt metode.

Syntaks:-

 abstract class Employee { abstract void work(); } 

Merk - Vi kan ikke erklære abstrakte metoder i ikke-abstrakt klasse.

Regler for abstrakt søkeord

Ikke gjør det

  • Et abstrakt nøkkelord kan ikke brukes med variabler og konstruktører.
  • Hvis en klasse er abstrakt, kan den ikke instansieres.
  • Hvis en metode er abstrakt, inneholder den ikke kroppen.
  • Vi kan ikke bruke det abstrakte nøkkelordet med endelig .
  • Vi kan ikke erklære abstrakte metoder som privat .
  • Vi kan ikke erklære abstrakte metoder som statisk .
  • En abstrakt metode kan ikke synkroniseres.

Gjøre det

  • Et abstrakt nøkkelord kan bare brukes med klasse og metode.
  • En abstrakt klasse kan inneholde konstruktører og statiske metoder.
  • Hvis en klasse utvider den abstrakte klassen, må den også implementere minst én av de abstrakte metodene.
  • En abstrakt klasse kan inneholde hovedmetoden og den endelige metoden.
  • En abstrakt klasse kan inneholde overbelastede abstrakte metoder.
  • Vi kan erklære den lokale indre klassen som abstrakt.
  • Vi kan erklære den abstrakte metoden med en throw-klausul.

Eksempler på abstrakte nøkkelord

Eksempel 1: Abstrakt klasse som inneholder den abstrakte metoden

 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(); } } 
Test det nå

Produksjon:

 Bike is running 

Eksempel 2: Abstrakt klasse som inneholder den abstrakte og ikke-abstrakte metoden

 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(); } } 
Test det nå

Produksjon:

kylie jenner søsken
 Bike is running Car is running 

Eksempel 3: Abstrakt klasse som inneholder konstruktøren

 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(); } } 
Test det nå

Produksjon:

string.replaceall java
 Constructor is invoked 

Eksempel 4: Abstrakt klasse som inneholder overbelastede abstrakte metoder

 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'); } } 
Test det nå

Produksjon:

 abstract method is invoked overloaded abstract method is invoked 

Eksempel 5: Indre abstrakt klasse

 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(); } } 
Test det nå

Produksjon:

 inner abstract class is invoked 

Eksempel 6: Nestet abstrakt klasse

 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(); } } 
Test det nå

Produksjon:

 nested abstract class is invoked