ההבדל בין Class Abstract לבין ממשק

Anonim

תקציר Class לעומת ממשק

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

-> ->

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

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

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

-> ->

מהו ממשק?

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

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

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