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

מהי שיעור סיכום?

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

ההבדל בין כיתה מופשטת לממשק ב- C #.

מה זה ממשק?

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

כיתוב מופשט וממשק: ההבדל בין הכיתה המופשטת לממשק ב- C #.

  1. ירושה מרובה - כיתה יכולה להשתמש רק בכיתה מופשטת אחת, ולכן ירושה מרובה אינה אפשרית. בתורו, הממשק יכול לתמוך בירושות מרובות, כלומר הכיתה יכולה לכלול מספר ירושות. הגדרת כיתוב מופשט וממשק ב- C # - כיתה מופשטת היא סוג של כיתה שיכולה להכיל מפרט שלא יושם ספציפית. ההיגיון ביישום נתמך על ידי הכיתות הנגזרות שלה. זה יכול להיות שיטות מופשטות וגם לא מופשטות. הממשק, בתורו, הוא רק תבנית שלא יכולה לעשות דבר. מבחינה טכנית, זה רק קליפה ריקה. יישום - שיעור מופשט יכול לכלול גם את ההגדרה וגם את יישומו. כיתה זו אינה שלמה ולא ניתן להתקנתה. הממשק יכול להיות רק חתימה של פונקציונליות ללא קוד. משתני גישה - למחלקה המופשטת עשויים להיות מספר שינויי קלט, כגון תת, פונקציות, תכונות וכו ', בעוד שמותרות לשנות ממשק אינן מורשות, ויש לציין במפורש את כל השיטות. הומוגניות - הכיתה המופשטת משמשת ליישום אותו סוג, התנהגות ומצב, ואילו הממשק מיועד רק ליישומים החולקים חתימות שיטה. הצהרה - הכיתה המופשטת משמשת כמעמד בסיס לכל שאר הכיתות, כך שהיא יכולה להכריז או להשתמש בכל משתנה כך שאסור להצהיר על משתנים כלשהם בממשק. הצהרת בנאי - בכיתה מופשטת יכולה להיות הצהרת בנאי, ואילו לממשק לא יכול להיות הצהרת בנאי. ראשוני והיקפי - הכיתה המופשטת משמשת לזיהוי המזהה של הכיתה וניתן להשתמש בה לאובייקטים מאותו סוג נתונים. הממשק, בתורו, משמש לקביעת היכולת ההיקפית של מעמד. מעולה ורקע - לפחות מנקודת מבט של מתכנת, הכיתה המופשטת פונקציונלית יותר והממשק הדוק יותר.

כיתת סיכום וממשק: טופס טבלה

סיכום

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

הפניות

  • חופש, ג'סי. לימוד C #. סבסטופול: ריילי מדיה, 2002. הדפס
  • חופש, ג'סי. לימוד C #. סבסטופול: ריילי מדיה, 2002. הדפס
  • לוין, פיטר. PHP מונחה עצמים: מושגים, שיטות וקוד. סן פרנסיסקו: No Starch Press, 2006 הדפס
  • סטלמן, אנדרו וג'ניפר גרין. תחילת ה- C # הראשונה. קולקטה: מפרסמים ומפיצי שרוף, 2008. הדפס
  • "זיכוי תמונה: https://stackoverflow.com/questions/2570814/when-to-use-abstract-classes"