logo

Java Özet Anahtar Kelimesi

Soyut anahtar kelime Java'da soyutlama elde etmek için kullanılır. Soyut sınıf ve yöntem oluşturmak için kullanılan erişim dışı bir değiştiricidir.

Soyut bir sınıfın rolü soyut yöntemleri içermesidir. Ancak soyut olmayan yöntemleri de içerebilir. Soyut anahtar kelimeyle bildirilen ve herhangi bir uygulaması olmayan yönteme soyut yöntem denir.

Sözdizimi:-

 abstract class Employee { abstract void work(); } 

Not - Soyut olmayan sınıfta soyut yöntemler bildiremeyiz.

Soyut anahtar kelimenin kuralları

Yapılmayacaklar

  • Soyut bir anahtar kelime değişkenler ve yapıcılarla kullanılamaz.
  • Bir sınıf soyutsa örneklenemez.
  • Bir yöntem soyutsa gövdeyi içermez.
  • Soyut anahtar kelimeyi şununla kullanamayız: son .
  • Soyut yöntemleri şu şekilde ilan edemeyiz: özel .
  • Soyut yöntemleri şu şekilde ilan edemeyiz: statik .
  • Soyut bir yöntem senkronize edilemez.

yapılacaklar

  • Soyut bir anahtar kelime yalnızca sınıf ve yöntemle kullanılabilir.
  • Soyut bir sınıf, yapıcıları ve statik yöntemleri içerebilir.
  • Eğer bir sınıf soyut sınıfı genişletiyorsa, soyut yöntemlerden en az birini de uygulamalıdır.
  • Soyut bir sınıf, ana yöntemi ve son yöntemi içerebilir.
  • Soyut bir sınıf aşırı yüklenmiş soyut yöntemler içerebilir.
  • Yerel iç sınıfı soyut olarak ilan edebiliriz.
  • Soyut yöntemi throw cümleciğiyle bildirebiliriz.

Soyut Anahtar Kelime örnekleri

Örnek 1: Soyut yöntemi içeren soyut sınıf

 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(); } } 
Şimdi Test Edin

Çıktı:

myflixr
 Bike is running 

Örnek 2: Soyut ve soyut olmayan yöntemi içeren soyut sınıf

 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(); } } 
Şimdi Test Edin

Çıktı:

 Bike is running Car is running 

Örnek 3: Yapıcıyı içeren soyut sınıf

 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(); } } 
Şimdi Test Edin

Çıktı:

 Constructor is invoked 

Örnek 4: Aşırı yüklenmiş soyut yöntemler içeren soyut sınıf

 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'); } } 
Şimdi Test Edin

Çıktı:

çalışma hatası
 abstract method is invoked overloaded abstract method is invoked 

Örnek 5: İç soyut sınıf

 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(); } } 
Şimdi Test Edin

Çıktı:

 inner abstract class is invoked 

Örnek 6: İç içe geçmiş soyut sınıf

 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(); } } 
Şimdi Test Edin

Çıktı:

 nested abstract class is invoked