فهرس المقرر
تقييم

تقييم الدرس 10: التجريد Abstraction

إجاباتك تُحفظ تلقائيًّا على هذا الجهاز. أجب ثم اضغط «صحّح ورقتي» أسفل كل قسم.

«abstract»Shape CircleRectangleلا new Shape()

← العودة إلى الدرس 10: التجريد Abstraction · أسئلة التقييم · أكمل الفراغات

أسئلة التقييم

أسئلة تقييم الدرس: التجريد Abstraction. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ما فائدة استخدام التجريد (Abstraction) في البرمجة الكائنية؟
2) ما الذي يميز الدوال المجردة (abstract methods)؟
3) أكمل الفراغ: الكلاس المجرد abstract class ........

2السؤال الثاني: صح أم خطأ

1) الكلاس المجرد abstract يمكن أن يحتوي دوالًا عادية. صح أم خطأ؟
الصواب: صح
2) الكلاس الابن غير المجرد يجب أن يكتب جميع الدوال المجردة التي ورثها. صح أم خطأ؟
الصواب: صح
3) في مخطط UML يُكتب اسم الكلاس المجرد بخط مائل. صح أم خطأ؟
الصواب: صح

3السؤال الثالث: أكمل الفراغات

1) الكلمة التي تجعل الكلاس مجردًا: .

💡 الكلمة التي تُكتب قبل class لتجعله مجردًا.

الإجابة: abstract

2) المبادئ الأربعة: التغليف والتجريد والوراثة و .

💡 المبدأ الرابع: Polymorphism.

الإجابة: تعدد الأشكال

3) العقد التجريدي الذي ينفّذه الكلاس: .

💡 عقد تجريدي ستتعرّف عليه لاحقًا.

الإجابة: interface

4) سهم «ينفّذ» في UML يكون برأس مثلث.

💡 السهم ليس متصلًا.

الإجابة: متقطعا

4السؤال الرابع: التوصيل

طابِق كل عنصر في العمود (أ) بما يناسبه في العمود (ب):

  1. 1) abstract class
  2. 2) abstract method
  3. 3) interface
  4. 4) implements
  5. 5) extends
  1. أ. دالة بلا جسم.
  2. ب. كلاس لا يُنشأ منه كائن.
  3. ج. يرث كلاسًا.
  4. د. ينفّذ واجهة.
  5. هـ. عقد تجريدي.
المفتاح: (1) ب (2) أ (3) هـ (4) د (5) ج

5السؤال الخامس: أسئلة عملية

1) تتبّع الناتج:

snippet
abstract class Animal{    abstract String sound();    void say() { System.out.println("I say " + sound()); }} class Cow extends Animal{    String sound() { return "Moo"; }} public class Main{    public static void main(String[] args)    {        Animal a = new Cow();        a.say();    }}
الناتج الصحيح:
Output×
I say Moo

2) اكتب كلاسًا مجردًا Employee فيه دالة مجردة double pay()، وكلاس Intern يرثه ويعيد 3000، ثم اطبع pay() لكائن Intern.

الحل النموذجي:
Employee.java
abstract class Employee{    abstract double pay();} class Intern extends Employee{    double pay()    {        return 3000;    }} public class Main{    public static void main(String[] args)    {        Employee e = new Intern();        System.out.println(e.pay());    }}
Output – JavaApplication (run)×
run:
3000.0
BUILD SUCCESSFUL (total time: 0 seconds)
قارن إجابتك بالحل:
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

أكمل الفراغات

اختر الكلمة الصحيحة من القائمة المنسدلة في كل فراغ. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: أسئلة عملية

1)

سؤال برمجي حول Abstract و Polymorphism
لدينا كلاس مجرّد (abstract) اسمه Person يحتوي على: متغير name ودالة بناء (constructor) يستقبل الاسم
ودالة مجرّدة اسمها work
تم إنشاء كلاس Student يرث من Person ويعيد تعريف الدالة work بحيث تطبع مثل ما يلي: Student Ali is studying وتم إنشاء كلاس Teacher يرث من Person ويعيد تعريف الدالة work بحيث تعرض: Teacher Mohammed is teaching. في الدالة main:
أنشئ كائنًا من Student وآخر من Teacher كعناصر للمصفوفة التي من نوع Person (أي باستخدام polymorphism).
وتم استدعِ الدالة work لكلا الكائنين.

  class Person {    String name;    Person(String name) {        this.name = name;    }     void work();}class Student    Person {    Student(String name) {        (name);    }    @Override    void    () {        System.out.println("Student " + name + " is studying.");    }}class Teacher    Person {    Teacher(String name) {        super(name);    }    @Override    void    () {        System.out.println("Teacher " + name + " is teaching.");    }}public class Main {    public static void main(String[] args) {            p[ ] = { new Student("Ali"), new Teacher("Mohammed") };        p[0].work();        p[1].work();    }}
الإجابة: (1) abstract · (2) abstract · (3) extends · (4) super · (5) work · (6) extends · (7) work · (8) Person
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».