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

נושא: ירושה מרובה ב-C#

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אורי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 September 2007 בשעה 19:39 | IP רשוּם
ציטוט אורי

שלום, ברצוני לבקש את עזרתכם לגבי בשאלה הבאה:

איך מחלקה מסויימת יכולה לרשת גם ממחלקת התנהגות וגם ממחלקת מימוש בו זמנית,

כלומר מה הקוד שצריך לרשום כדי לממש את הירושה המרובה?

אודה לכם אם תענו על השאלה הבאה,

בתודה אורי.

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 September 2007 בשעה 19:55 | IP רשוּם
ציטוט shoshan

התנהגות - interface

מחלקת מימוש - class

אתה יכול לרשת כמה התנהגויות (interface-ים)

משהו כזה

קוד:
class C : CBase, ISerializable, IPrintable, ...
{

}


וההתיחסות ל-base תהיה למחלקה שיורשים...אם לא מספקים כזאת אז זה יהיה Object...

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 September 2007 בשעה 20:05 | IP רשוּם
ציטוט אורי

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 September 2007 בשעה 20:16 | IP רשוּם
ציטוט אורי

מצטער שאני מפריע שוב, אבל כתבתי את זה:

class Cylinder : Circle , ThreeDimentional

כפי שניתן לראות זה לא מקבל את המחלקה השנייה שהיא מחלקה מסוג abstract..

הוא מצליח לקבל מחלקה אחת בלבד..בהתאם למחלקה הראשונה שמתקבל לאחר הנקודותיים.

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 September 2007 בשעה 20:53 | IP רשוּם
ציטוט shoshan

ב-c# ממשק (interface) לא ממומש על ידי abstract class אלא על ידי interface

קוד:
interface ISomething
{

}


ובפנים אתה שם מתודות ותכונות למימוש המחלקה היורשת...

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
אורי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 22 September 2007 בשעה 20:56 | IP רשוּם
ציטוט אורי

רגע ואם אני משתמש בפונקציית tostring ב-2 המחלקות המורישות..אין מצב שיוותר מצב של התנגשות בין tostring של מחלקת threedimentional ו-tostring של מחלקת cicle ?

 

תודה רבה,

אורי

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

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 22 September 2007 בשעה 21:08 | IP רשוּם
ציטוט shoshan

יש מצב של התנגשות, אב אין מצב של ovveride מסוג כל שהוא...

הקריאה לפונקציה המתאימה תתבצע ע"י casting לממשק או למחלקה המתאימה.

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

משהו כזה:

קוד:
public IBinarySerializable.ToInt()
{
    return this.Age;
}

public IHashable.ToInt()
{
    return this.Name.HashCode();
}


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

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

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

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