→ חזרה לעמוד הקודם
// תרגול

תרגול פולימורפיזם (המרות) 1

מבני נתונים · 899271פולימרפיזם

היררכיית המחלקות

לפניכם היררכיית מחלקות בשפת C#.

public class Animal
{
    public int Age;
    public Animal(int age) { Age = age; }
}

public class Dog : Animal
{
    public Dog(int age) : base(age) { }
    public void Bark() { }
}

public class Cat : Animal
{
    public Cat(int age) : base(age) { }
    public void Meow() { }
}

public class GuideDog : Dog
{
    public GuideDog(int age) : base(age) { }
    public void Lead() { }
}

ההפניות בתוכנית הראשית

בתוכנית הראשית הוגדרו ההפניות הבאות:

Animal a1 = new Animal(1);
Animal a2 = new Dog(2);
Animal a3 = new GuideDog(3);
Dog d1 = new GuideDog(4);
Dog d2 = new Dog(5);
Animal a4 = new Cat(6);
Cat c1 = new Cat(7);

קבעו לכל פקודה: נכון או לא נכון

יש לבחון כל פקודה בנפרד, ללא תלות בפקודות האחרות. אם הפקודה אינה תקינה, ציינו האם זו שגיאת קומפילציה או שגיאת זמן ריצה.

מס׳פקודהנכון / לא נכוןסוג השגיאה (אם יש)
1Animal x = new Dog(8);
2Dog x = new Animal(8);
3Dog x = (Dog)a2;
4Dog x = (Dog)a1;
5GuideDog x = (GuideDog)a3;
6GuideDog x = (GuideDog)d2;
7Animal x = d1;
8Cat x = (Cat)a4;
9Cat x = (Cat)a2;
10Dog x = (Dog)a4;
11GuideDog x = d1;
12GuideDog x = (GuideDog)d1;
13Animal x = c1;
14Cat x = (Cat)a1;
15Dog x = (Dog)a3;
16GuideDog x = (GuideDog)a2;
17Dog x = (Dog)c1;
18Animal x = new GuideDog(9);
הורדת הקובץ המקוריPDF · תרגול פולימורפיזם (המרות) 1