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

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

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

הגדרת המחלקות

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();

בדיקת ההוראות

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

מס׳פקודהתקין / לא תקיןנימוק קצר (אם לא תקין)
1F f1 = new E();
2E e1 = new G();
3F f2 = (F)polyG;
4G g1 = (G)polyF;
5F f3 = (F)polyH;
6H h1 = (H)objE;
7polyG.PrintG();
8((G)polyG).PrintG();
9((F)polyH).PrintF();
10int x = polyH.GetVal();
הורדת הקובץ המקוריPDF · תרגול פולימורפיזם (המרות) 2