היררכיית המחלקות
לפניכם היררכיית מחלקות בשפת 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);קבעו לכל פקודה: נכון או לא נכון
יש לבחון כל פקודה בנפרד, ללא תלות בפקודות האחרות. אם הפקודה אינה תקינה, ציינו האם זו שגיאת קומפילציה או שגיאת זמן ריצה.
| מס׳ | פקודה | נכון / לא נכון | סוג השגיאה (אם יש) |
|---|---|---|---|
| 1 | Animal x = new Dog(8); | ||
| 2 | Dog x = new Animal(8); | ||
| 3 | Dog x = (Dog)a2; | ||
| 4 | Dog x = (Dog)a1; | ||
| 5 | GuideDog x = (GuideDog)a3; | ||
| 6 | GuideDog x = (GuideDog)d2; | ||
| 7 | Animal x = d1; | ||
| 8 | Cat x = (Cat)a4; | ||
| 9 | Cat x = (Cat)a2; | ||
| 10 | Dog x = (Dog)a4; | ||
| 11 | GuideDog x = d1; | ||
| 12 | GuideDog x = (GuideDog)d1; | ||
| 13 | Animal x = c1; | ||
| 14 | Cat x = (Cat)a1; | ||
| 15 | Dog x = (Dog)a3; | ||
| 16 | GuideDog x = (GuideDog)a2; | ||
| 17 | Dog x = (Dog)c1; | ||
| 18 | Animal x = new GuideDog(9); |