recent
أخبار ساخنة

الكلاسات المجردة abstract في لغة جافا JAVA الدرس|29|

الصفحة الرئيسية

 

الكلاسات المجردة abstract

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

حتى الدوال و المتغيرات الذي تكون داخل الكلاس المجرد يجب أن تسبقها كلمة abstract لتعريفه أنه مجرد.

 

الشكل العام لكتابته

package ****;
abstract class هنا نكتب اسم الكلاس
{
    abstract void names();  names هو اسم الدالة
}
public class ****{


مثال 1

package cara;
abstract class car
{
    abstract void names()
    {
        System.out.println("sajo");
    }
}
public class CarA{
     public static void main(String []args){
        System.out.println("Hello World");
     }
}

 

شرح المثال السابق 1

نلاحظ في هذا المثال أننا أنشانا كلاس مجرد بإسم car و كان بداخله دالة ايضاً سبقتها الكلمة abstract الذي تعرفّها أنها مجرد و عندما فتحنا القوسين اسفلها لنُعطي أمر طباعة سوف يعطينا خطأ سيظهر سطر لونه أحمر اسفل الدالة لأن من الشروط لا يمكن إنشاء كود بداخله و مخصص فقط للتصريح عن الدوال.


الهدف من الكلاسات المجردة

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

 

مثال 2

package cara;
abstract class car
{
    abstract void color();
    abstract void speed();
}
class carB extends car
{
    void color()
    {
        System.out.println("bink");
    }
    void speed()
    {
        System.out.println("90k");
    }
}
public class CarA{
     public static void main(String []args){
        System.out.println("Hello World");
     }
}

 

شرح المثال السابق 2

أنشأنا كلاس مجرد إسمه car و به دالتين نوع void و هما اللون color و السرعة speed ثم أورثنا كلاس إسمه carB من الكلاس الأب وورث الدوال اللون و السرعة ثم طبعهم عبر امر الطباعة المعروف System.out.println و هنا إستطعنا الإعلان عن الدوال الذي في الكلاس الأب.

google-playkhamsatmostaqltradent