הרעיון המרכזי של המעמד המופשט טמון בתזה הבאה: לפעמים לא נדרשים שיעורים מוכנים, אלא בצורה "גולמית". החסר כזה לא ניתן להשתמש ישירות (ליצור מקרים).
הבה נבחן דוגמה נוספת. יש ב- Java בכיתה מופשטת לוח שנה בחבילה Java.util. הוא אינו מיישם לוח שנה ספציפי המשמש, למשל, במערב ומזרח אירופה, סין, צפון קוריאה, תאילנד וכו '. אך יש לו פונקציות שימושיות רבות, לדוגמה, הוספת מספר ימים לתאריך מסוים: פונקציות אלה נדרשות עבור כל יישום לוח השנה. אתה לא יכול להשריץ מופע ממעמד מופשט.
נניח שאתה צריך לפתח כמה גרפיאלמנטים, למשל, צורות גיאומטריות: .. עיגול, מלבן, כוכב, וכו 'ויש מיכל אשר מושך אותם. כל רכיב של המראה הוא שונה, ולכן השיטה המתאימה (גם אם זה נקרא צבע) מיושמת באופן שונה. עם זאת, כל רכיב יש קווי דמיון רבים: .. הדמות צריכה להיכלל בתיבת עלולה להיות הצבע להיות נראים ובלתי נראים, וכו 'במילים אחרות, אתה צריך ליצור מעמד ההורה עבור כל הנתונים הללו, כאשר כל רכיב יירש את המאפיינים הכלליים.
אם בכיתה יש שיטות מופשטות, אזהכיתה היא מופשטת. לפני המילה בכיתה היא לשים את מילת המפתח מופשטת, בכותרת של השיטה - גם. לאחר ראש שיטה זו, אתה צריך לשים נקודה פסיק. בג'אווה, מעמד מופשט אינו יכול להשריץ מקרים. אם אנחנו רוצים לאסור את היצירה שלהם, גם אם בכיתה אין שיטות מופשטות, אז הכיתה יכולה להיות מוצהרת מופשטת. אבל אם לשיעור יש לפחות שיטה מופשטת אחת, אזי הכיתה חייבת להיות מופשטת. זה בלתי אפשרי עבור הכיתה להיות מופשטים, הסופי, ואת השיטה, גם. השיטה לא יכולה להיות מופשטת, פרטית, סטטי, יליד. על מנת שהכיתות היורשות יוכרזו כבלתי מופשטות ויוצרות את המופעים שלהן, עליהן ליישם את כל השיטות המופשטות של ההורה. הכיתה עצמה יכולה להשתמש בשיטות המופשטות שלה.
דוגמה:
משתנים מסוג המעמד המופשט מותרים. הם יכולים להפנות את צאצא לא מופשט של המעמד הזה או להיות ריק.
ב- Java אין ירושה מרובה, כי אז יש בעיות מסוימות. מחלקה אינה יכולה לרשת מספר מעמדות. אבל זה יכול ליישם מספר ממשקים.
ממשקי ג 'אווה וחוגים תקצירדומה אך לא זהה. הממשק יכול להיות מוכרז כציבורי, אז הוא נגיש לכולם, או שאתה לא יכול לציין את הציבור משנה, אז הממשק זמין רק בתוך החבילה שלה. מילת המפתח המופשטת אינה נדרשת, שכן הממשק כבר מופשט, אך ניתן לציין אותו.
זה מתחיל עם כותרת והוא יכול ללכת הראשוןאת מילת המפתח הציבור, ולאחר מכן את ממשק המילה. אז יכול להיות המילה מרחיבה ואת ספירה של ממשקים שמהם זה עובר בירושה. אין חזרות חוזרות, וזה גם בלתי אפשרי עבור היחס הירושה להיות מחזורי. ואז מגיע גוף ממשק, מוקף הפלטה. שדות האלמנט מוכרזים בגוף הממשק: שדות קבועים ושיטות מופשטות. כל השדות הם ציבוריים סטטי סטטי - כל אלה הם מכפילים אופציונליים. כל השיטות נחשבות מופשטות בציבור - ניתן להגדיר גם שינויים אלה. עכשיו זה מספיק מספיק אמר על ההבדל של המעמד מופשט ממשק Java.
כדי להכריז על כיתה כיורש הממשק, עליך להשתמש ביישומי מילות המפתח:
כלומר, אם שם הממשק מצוין בהצהרת הכיתה לאחר המימוש, אזי הכיתה מיישמת אותו. יורשי המעמד הזה יורשים את מרכיביו, ולכן הם גם מיישמים אותו.
משתנים של סוג ממשק מותר גם. הם יכולים להתייחס לסוג של הכיתה מיישמת ממשק זה, או null. משתנים כאלה יש את כל האלמנטים של המחלקה אובייקט, כי אובייקטים נוצרים מתוך שיעורים, ואת אלה בתורו יורשים ממחלקת אובייקט.
במאמר זה, הסתכלנו על כמה מרכיבים של מודל אובייקט Java - כיתות מופשטות, שיטות מופשטות, ממשקים.
</ p>