עבור לתוכן

שאלה בירושה ופולימורפים

Featured Replies

פורסם

נתונות המחלקות הבאות:

public abstract class A{
protected int _x;
public abstract void d(int y);
public String toString() {
return ""+_x;
}
}

public abstract class B extends A
{
private int _y;


public B()
{
super();
_y = 1;
}

public String toString()
{
return ""+_x + "."+_y;
}
}
public class C extends B
{
private int _z;


public C()
{
super();
_z = 10;
}


public void d(int y)
{
_x += (y+_z);
}


public String toString()
{
return
super.toString()+"."+_z;
}


}

main:

	public static void main(String[] args)	{
A a = new C();
B b = new C();
C c = new C();
System.out.println ("a: " + a + "\nb: " + b + "\nc: " + c);
}

מה שאני לא מבין זה למה הפלט הוא

a: 0.1.10b: 0.1.10

c: 0.1.10

הרי כשיש new C אני נכנס ל-C פוגש בסופר ואז הולך ל-B ופוגש את הסופר שוב ול-A אין בנאי ריק בכלל

פורסם

לכל מחלקה שלא הגדרת לה בנאי יש אוטומטית בנאי ריק (שלא עושה כלום).

פורסם
  • מחבר

אבל למה הערכים של A,B ו-C הם כאלו ? (אשמח להסבר)

פורסם

מה יש להסביר? פשוט תעקוב אחרי מה שהבנאים עושים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים