تخطَّ إلى المحتوى

abstract

الصنف المجرّد abstract

abstract تمنع إنشاء كائن من صنف وتجعله قالبًا للأصناف المشتقة — قد تحوي دوال مجرّدة بلا كود.

الصنف المجرّد لا يمكن إنشاء كائن منه مباشرة (new ClassName() خطأ). يحتوي عادة دوالًا مجرّدة (abstract methods) بلا كود — على المشتق تنفيذها. يمكن أن تحوي أيضًا دوالًا عادية وحقولًا طبيعية.

الصياغة

public abstract class Shape {
    abstract double area();

    void describe() {
        System.out.println("المساحة: " + area());
    }
}

📄 مثال

abstract class Vehicle {
    String brand;
    Vehicle(String brand) { this.brand = brand; }
    abstract void start();
}

class Car extends Vehicle {
    Car(String brand) { super(brand); }

    @Override
    void start() {
        System.out.println(brand + " تبدأ بالعمل");
    }
}

// Vehicle v = new Vehicle("X"); // خطأ!
Car c = new Car("Toyota");
c.start();

أهم النقاط

العنصرالوظيفة
abstract classصنف لا يمكن إنشاء كائن منه — قالب فقط
abstract void method()دالة بلا كود — يجب تنفيذها في المشتق
مزيجيمكن أن تحوي دوال مجرّدة + دوال عادية + حقول عادية

💡 نصائح عملية

  • استخدم abstract عندما يكون الصنف أبًا مشتركًا لأصناف مختلفة لكن السلوك يختلف
  • لا تُفرط في الأصناف المجرّدة — واجهة أحيانًا أنسب

⚠️ أخطاء شائعة

  • إنشاء كائن من صنف abstract — خطأ ترجمة مباشر
  • nxing دالة abstract بدون @Override — صواب لكن الأفضل كتابتها

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.