נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שאלת מעקב בג’אווה

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
זיו1
משתמש פעיל
משתמש פעיל


הצטרף / הצטרפה: 30 November 2007
משתמש: מנותק/ת
הודעות: 66
נשלח בתאריך: 20 December 2007 בשעה 19:20 | IP רשוּם
ציטוט זיו1

 

קוד:
public class A
{
   public A (int i)
   {
       System.out.println (i);
   }
}

public class B extends A
{
   public B (int i)
   {
       A a = new A(2);
       System.out.println(i);
   }
}

1.האם הקטע תקין או שגוי?
אם שגוי, הסבירו מדוע.
אם תקין, כתבו מה יודפס כתוצאה מביצוע הפקודה
A a = new B(5);ddd

2.מה צריך לשנות, מבלי להוסיף או לשנות פקודות println כדי שהפלט יהיה : 2 5

3.מה צריך לשנות, מבלי להוסיף או לשנות פקודות println כדי שהפלט יהיה : 5

לגבי 1
ברגע שהגדרתי למחלקה A קונסטרקטור כלשהו, המערכת כבר לא תייצר עבורי default constructor, כלומר כזה בלי פרמטרים.

המחלקה B יורשת מ A, אבל היא לא מעבירה פרמטרים לקונסטרקטור של A. לכן זה בכלל לא אמור לעבור קומפילציה.
צריך במפורש ב קונסטרקטור של B לקרוא למתודה super, כלומר ל קונסטרקטור של מחלקת האב, עם פרמטרים מתאימים לפי מה שאני רוצה שיודפס.
ז"א צריךsuper(i)ddd ב-B
כפקודה ראשונה

לגבי 2,3 אפשר עזרה?

חזרה לתחילת העמוד הצג את כרטיס החבר של זיו1 חפש הודעות אחרות של זיו1
 
מי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 25 December 2007 בשעה 18:00 | IP רשוּם
ציטוט מי

כן תבקש מאלצ'קו אבל תיזהר מהתשובות שלו הן גורמות למינוס מינוס בהשכלה.
חזרה לתחילת העמוד הצג את כרטיס החבר של מי חפש הודעות אחרות של מי בקר בדף הבית של מי
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה