الفئات المجرّدة
عرّف الفئات والدوال المجرّدة، وافهم سبب عدم إمكانية إنشاء مثيلات منها، وشاهد كيف تكمل الفئات الفرعية التصميم.
الفئات المجرّدة درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
ما الفئة المجرّدة؟
الفئة المجرّدة: تحدد فكرة مشتركة وقد تترك بعض الدوال بلا جسم. ويمكنها أيضًا أن تتضمن دوال عادية تحتوي على شيفرة. فكّروا فيها كقالب يطلب من الفئات الفرعية ملء الفراغات.
الشيفرة: لا يمكن إنشاء مثيل
لا يمكن إنشاء مثيلات من الفئات المجرّدة مباشرةً. ويمكنها مع ذلك أن تحتوي على دوال عادية ترثها جميع الفئات الفرعية.
public class Main {
// Abstract class with one abstract method and one concrete method
static abstract class Animal {
abstract void speak(); // must be implemented by subclasses
void info() { // concrete method allowed
System.out.println("I am an animal.");
}
}
public static void main(String[] args) {
// Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
System.out.println("You cannot create an Animal directly if it is abstract.");
}
}
لماذا نستخدم الفئات المجرّدة؟
تجمع الفئات المجرّدة الشيفرة المشتركة في مكان واحد، وتُلزم كل فئة فرعية بتوفير الدوال المهمة. استخدموها عندما يكون بعض السلوك مشتركًا، بينما يختلف بعضه الآخر بين الأنواع الفعلية.
الشيفرة: تنفيذ دالة مجرّدة
يجب على الفئات الفرعية تنفيذ الدوال المجرّدة. أما الدوال الفعلية من الفئة المجرّدة فتُورث ويمكن إعادة استخدامها.
public class Main {
static abstract class Animal {
abstract void speak();
void info() {
System.out.println("I am an animal.");
}
}
static class Dog extends Animal {
// Must implement speak()
void speak() {
System.out.println("Woof!");
}
}
public static void main(String[] args) {
Dog d = new Dog(); // allowed: Dog is concrete
d.info(); // inherited concrete method
d.speak(); // Dog's implementation
}
}
القواعد والمزج
القواعد: قد تحتوي الفئة المجرّدة على حقول ومُنشئات ودوال فعلية. ولا تصبح الفئة الفرعية فعلية إلا بعد تنفيذ جميع الدوال المجرّدة؛ وإلا فإنها تظل مجرّدة أيضًا.
الشيفرة: الفئة المجرّدة + تعدد الأشكال
تعمل الفئات المجرّدة جيدًا مع تعدد الأشكال. يمكن للشيفرة استخدام النوع المجرّد، وتوفّر كل فئة فرعية السلوك الصحيح.
public class Main {
static abstract class Animal {
abstract void speak();
}
static class Dog extends Animal {
void speak() { System.out.println("Woof!"); }
}
static class Cat extends Animal {
void speak() { System.out.println("Meow!"); }
}
public static void main(String[] args) {
// Polymorphism through abstract base type
Animal[] pets = { new Dog(), new Cat() };
for (int i = 0; i < pets.length; i = i + 1) {
pets[i].speak(); // each subclass provides its own behavior
}
}
}
التحقق من الفئات المجرّدة
تحقق سريع: أي عبارة عن الفئات المجرّدة صحيحة؟
مراجعة
مراجعة: استخدموا الفئات المجرّدة لمشاركة الشيفرة وفرض الدوال الأساسية. لا يمكن إنشاء مثيلات منها مباشرةً، لكن الفئات الفرعية تستكمل السلوك.
الأسئلة الشائعة
هل درس «الفئات المجرّدة» مجاني؟
نعم — نص درس «الفئات المجرّدة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «الفئات المجرّدة»؟
عرّف الفئات والدوال المجرّدة، وافهم سبب عدم إمكانية إنشاء مثيلات منها، وشاهد كيف تكمل الفئات الفرعية التصميم. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «الفئات المجرّدة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.