הגדרת המחלקות
public class E
{
protected int val;
public E()
{
this.val = 10;
}
public int GetVal()
{
return this.val;
}
}
public class H : E
{
public H()
{
this.val = 20;
}
public void PrintH()
{
}
}
public class F : E
{
public F()
{
this.val = 30;
}
public void PrintF()
{
}
}
public class G : F
{
public G()
{
this.val = 40;
}
public void PrintG()
{
}
}אתחול המשתנים בתוכנית הראשית
בפעולה Main אותחלו המשתנים הבאים:
E objE = new E();
E polyG = new G();
E polyH = new H();
F polyF = new G();בדיקת ההוראות
קבעו עבור כל אחת מעשר ההוראות האם היא תקינה. אם אינה תקינה, נמקו בקצרה וציינו אם מדובר בשגיאת זמן ריצה או בשגיאת קומפילציה. כל שורה עומדת בפני עצמה.
| מס׳ | פקודה | תקין / לא תקין | נימוק קצר (אם לא תקין) |
|---|---|---|---|
| 1 | F f1 = new E(); | ||
| 2 | E e1 = new G(); | ||
| 3 | F f2 = (F)polyG; | ||
| 4 | G g1 = (G)polyF; | ||
| 5 | F f3 = (F)polyH; | ||
| 6 | H h1 = (H)objE; | ||
| 7 | polyG.PrintG(); | ||
| 8 | ((G)polyG).PrintG(); | ||
| 9 | ((F)polyH).PrintF(); | ||
| 10 | int x = polyH.GetVal(); |