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

تقييم الدرس 9: تعدد الأشكال Polymorphism

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

Shape[] shapes[0][1][2] getArea()78.524.010.5

← العودة إلى الدرس 9: تعدد الأشكال Polymorphism · أسئلة التقييم · أكمل الفراغات

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

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

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

1) كيف تحقق Java تعدد الأشكال الثابت (Static Polymorphism)؟
2) ماذا نسمي عملية استدعاء الدالة المناسبة في وقت التنفيذ بناءً على نوع الكائن؟
3) ما الفرق الأساسي بين Overloading و Overriding؟
4) أكمل الفراغ: الكلمة Poly في Polymorphism تعني ........
5) إذا كان الكلاس Circle يرث من Shape، أي سطر صحيح؟
6) أكمل الفراغ: التعليق الصحيح الذي يُكتب قبل الدالة المعاد كتابتها هو ........
7) تأمل الكود التالي، ماذا سيكون الناتج عند تنفيذه؟
snippet
class Animal{    void speak() { System.out.println("Animal"); }} class Dog extends Animal{    @Override    void speak() { System.out.println("Dog"); }} public class Main{    public static void main(String[] args)    {        Animal a = new Dog();        a.speak();    }}

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

1) JVM هو الذي يحدّد الدالة المنفّذة في تعدد الأشكال الديناميكي. صح أم خطأ؟
الصواب: صح
2) مصفوفة من نوع الكلاس الأب يمكن أن تحتوي كائنات من الكلاسات الأبناء. صح أم خطأ؟
الصواب: صح
3) التعليق @Override يجعل المترجِم يتحقق من صحة إعادة الكتابة. صح أم خطأ؟
الصواب: صح

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

1) تعدد الأشكال الثابت يُحدَّد وقت .

💡 تعدد الأشكال الثابت يُحدَّد وقت ___ أي قبل التنفيذ.

الإجابة: الترجمة

2) تعدد الأشكال الديناميكي يتحقق بـ .

💡 إعادة كتابة الدالة في الابن، بالإنجليزية.

الإجابة: Overriding

3) الربط وقت الترجمة يُسمّى الربط .

💡 الربط وقت الترجمة يُسمّى الربط ___ .

الإجابة: المبكر

4) إنشاء مصفوفة من 3 أشكال: Shape[] s = new Shape[];

💡 عدد عناصر المصفوفة.

الإجابة: 3

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

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

  1. 1) Static polymorphism
  2. 2) Dynamic polymorphism
  3. 3) Overloading
  4. 4) Overriding
  5. 5) Shape s = new Circle()
  1. أ. وقت التشغيل.
  2. ب. وقت الترجمة.
  3. ج. متغير الأب يحمل كائن الابن.
  4. د. معاملات مختلفة.
  5. هـ. الابن يعيد كتابة دالة الأب.
المفتاح: (1) ب (2) أ (3) د (4) هـ (5) ج

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

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

snippet
class Shape {    double area() { return 0; }}class Sq extends Shape {    double s;    Sq(double s) { this.s = s; }    double area() { return s * s; }}class Ci extends Shape {    double r;    Ci(double r) { this.r = r; }    double area() { return 3 * r * r; }} public class Main{    public static void main(String[] args)    {        Shape[] arr = { new Sq(2), new Ci(1) };        for (Shape x : arr)            System.out.println(x.area());    }}
الناتج الصحيح:
Output×
4.0
3.0

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

snippet
class Shape{    String name() { return "Shape"; }} class Square extends Shape{    @Override    String name() { return "Square of " + super.name(); }} public class Main{    public static void main(String[] args)    {        System.out.println(new Square().name());    }}
الناتج الصحيح:
Output×
Square of Shape
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

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

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

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

1)

أكمل الكود من التدريب 13: الكلاس HourlyEmployee يعيد كتابة دالة الراتب

public class HourlyEmployee extends Employee {    private int workingHours = 40;    private double hourRate = 150;        public double () {        return (workingHours * hourRate);    }}Employee emp = new ();System.out.println("Salary: " + emp.getSalary());
الإجابة: (1) @Override · (2) getSalary · (3) HourlyEmployee
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».