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 الكامل بالعربي.