logo

Java sažetak Ključna riječ

Ključna riječ abstract koristi se za postizanje apstrakcije u Javi. To je modifikator bez pristupa koji se koristi za stvaranje apstraktne klase i metode.

Uloga apstraktne klase je da sadrži apstraktne metode. Međutim, može sadržavati i neapstraktne metode. Metoda koja je deklarirana ključnom riječi abstract i nema implementaciju poznata je kao apstraktna metoda.

Sintaksa:-

 abstract class Employee { abstract void work(); } 

Napomena - Ne možemo deklarirati apstraktne metode u neapstraktnoj klasi.

Pravila apstraktne ključne riječi

Nemojte

  • Apstraktna ključna riječ ne može se koristiti s varijablama i konstruktorima.
  • Ako je klasa apstraktna, ne može se instancirati.
  • Ako je metoda apstraktna, ne sadrži tijelo.
  • Ne možemo koristiti apstraktnu ključnu riječ s konačni .
  • Apstraktne metode ne možemo proglasiti kao privatna .
  • Apstraktne metode ne možemo proglasiti kao statički .
  • Apstraktnu metodu nije moguće sinkronizirati.

učiniti

  • Apstraktna ključna riječ može se koristiti samo s klasom i metodom.
  • Apstraktna klasa može sadržavati konstruktore i statičke metode.
  • Ako klasa proširuje apstraktnu klasu, ona također mora implementirati barem jednu od apstraktnih metoda.
  • Apstraktna klasa može sadržavati glavnu metodu i konačnu metodu.
  • Apstraktna klasa može sadržavati preopterećene apstraktne metode.
  • Lokalnu unutarnju klasu možemo proglasiti apstraktnom.
  • Apstraktnu metodu možemo deklarirati klauzulom throw.

Primjeri apstraktnih ključnih riječi

Primjer 1: Apstraktna klasa koja sadrži apstraktnu metodu

 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(); } } 
Testirajte sada

Izlaz:

 Bike is running 

Primjer 2: Apstraktna klasa koja sadrži apstraktnu i neapstraktnu metodu

 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(); } } 
Testirajte sada

Izlaz:

 Bike is running Car is running 

Primjer 3: Apstraktna klasa koja sadrži konstruktor

 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(); } } 
Testirajte sada

Izlaz:

 Constructor is invoked 

Primjer 4: Apstraktna klasa koja sadrži preopterećene apstraktne metode

 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'); } } 
Testirajte sada

Izlaz:

 abstract method is invoked overloaded abstract method is invoked 

Primjer 5: Unutarnja apstraktna klasa

 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(); } } 
Testirajte sada

Izlaz:

 inner abstract class is invoked 

Primjer 6: Ugniježđena apstraktna klasa

 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(); } } 
Testirajte sada

Izlaz:

 nested abstract class is invoked