logo

جافا الكلمة الأساسية مجردة

يتم استخدام الكلمة الأساسية المجردة لتحقيق التجريد في Java. إنه معدّل غير قابل للوصول يُستخدم لإنشاء فئة وطريقة مجردة.

يتمثل دور الفصل المجرد في احتواء الأساليب المجردة. ومع ذلك، قد يحتوي أيضًا على طرق غير مجردة. تُعرف الطريقة التي تم الإعلان عنها باستخدام كلمة أساسية مجردة وليس لها أي تطبيق بالطريقة المجردة.

بناء الجملة:-

 abstract class Employee { abstract void work(); } 

ملاحظة - لا يمكننا الإعلان عن الأساليب المجردة في فئة غير مجردة.

قواعد الكلمات الرئيسية المجردة

لا تفعل ذلك

  • لا يمكن استخدام الكلمة الأساسية المجردة مع المتغيرات والمنشئات.
  • إذا كانت الفئة مجردة، فلا يمكن إنشاء مثيل لها.
  • إذا كانت الطريقة مجردة، فهي لا تحتوي على الجسم.
  • لا يمكننا استخدام الكلمة الأساسية المجردة مع أخير .
  • لا يمكننا أن نعلن عن أساليب مجردة خاص .
  • لا يمكننا أن نعلن عن أساليب مجردة ثابتة .
  • لا يمكن مزامنة الطريقة المجردة.

افعل

  • لا يمكن استخدام الكلمة الأساسية المجردة إلا مع الفئة والطريقة.
  • يمكن أن تحتوي الفئة المجردة على مُنشئات وأساليب ثابتة.
  • إذا قام الفصل بتوسيع الفصل المجرد، فيجب عليه أيضًا تنفيذ طريقة واحدة على الأقل من الأساليب المجردة.
  • يمكن أن تحتوي الفئة المجردة على الطريقة الرئيسية والطريقة النهائية.
  • يمكن أن تحتوي فئة مجردة على أساليب مجردة مثقلة.
  • يمكننا أن نعلن أن الطبقة الداخلية المحلية مجردة.
  • يمكننا أن نعلن عن الطريقة المجردة بجملة رمي.

أمثلة على الكلمات الرئيسية المجردة

مثال 1: فئة مجردة تحتوي على الطريقة المجردة

 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(); } } 
اختبره الآن

انتاج:

 Bike is running 

مثال 2: فئة مجردة تحتوي على الطريقة المجردة وغير المجردة

 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(); } } 
اختبره الآن

انتاج:

 Bike is running Car is running 

مثال 3: فئة مجردة تحتوي على المنشئ

 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(); } } 
اختبره الآن

انتاج:

 Constructor is invoked 

مثال 4: فئة مجردة تحتوي على أساليب مجردة مثقلة

 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'); } } 
اختبره الآن

انتاج:

 abstract method is invoked overloaded abstract method is invoked 

مثال 5: فئة مجردة داخلية

 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(); } } 
اختبره الآن

انتاج:

 inner abstract class is invoked 

مثال 6: فئة مجردة متداخلة

 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(); } } 
اختبره الآن

انتاج:

 nested abstract class is invoked