הבדל בין מחלקה מופשטת לממשק

הבדל בין מחלקה מופשטת לממשק
הבדל בין מחלקה מופשטת לממשק

וִידֵאוֹ: הבדל בין מחלקה מופשטת לממשק

וִידֵאוֹ: הבדל בין מחלקה מופשטת לממשק
וִידֵאוֹ: שיחה בין גננת לסייעת (כולל כתוביות הדרכה) 2024, יולי
Anonim

שיעור מופשט לעומת ממשק

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

מה זה שיעור מופשט?

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

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

מהו ממשק?

ממשק הוא סוג מופשט המשמש לציון חוזה שאמור להיות מיושם על ידי מחלקות, שמיישמות את הממשק הזה. מילת המפתח ממשק משמשת להגדרת ממשק ומילת מפתח Implements משמשת להטמעת ממשק על ידי מחלקה (בשפת התכנות Java). בדרך כלל, ממשק יכיל רק חתימות שיטה והצהרות קבועות. כל ממשק שמיישם ממשק מסוים צריך ליישם את כל השיטות המוגדרות בממשק, או שיש להכריז עליו כמחלקה אבסטרקטית. ב-Java, ניתן להגדיר את סוג הפניה לאובייקט כסוג ממשק. אבל האובייקט הזה חייב להיות null או צריך להחזיק אובייקט של מחלקה, המיישמת את הממשק המסוים הזה.באמצעות מילת המפתח Implements ב-Java, תוכל ליישם מספר ממשקים למחלקה אחת.

מה ההבדל בין מחלקה מופשטת לממשק?

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

מוּמלָץ: