שיעור מופשט לעומת ירושה
Abstract class ו-Inheritance הם שני מושגים חשובים מונחה עצמים שנמצאים בשפות תכנות רבות מוכוונות עצמים כמו Java. מחלקה מופשטת יכולה להיחשב כגרסה מופשטת של מחלקה רגילה (קונקרטית), בעוד הירושה מאפשרת לשיעורים חדשים להרחיב מחלקות אחרות. מחלקה מופשטת היא מחלקה שלא ניתן לאתחל אך ניתן להרחיב אותה. אז, שיעורים מופשטים הם בעלי משמעות רק אם שפת התכנות תומכת בירושה. ב-Java, מחלקות מופשטות מוכרזות באמצעות מילת מפתח אבסטרקטית, בעוד מילת מפתח Extends משמשת לירושה ממחלקה (על).
מה זה שיעור מופשט?
בדרך כלל, לא ניתן ליצור מחלקות מופשטות, הידועות גם בשם מחלקות בסיס מופשטות (ABC), (לא ניתן ליצור מופע של מחלקה זו). לכן, יש משמעות לשיעורים מופשטים רק אם שפת התכנות תומכת בירושה (יכולת ליצור מחלקות משנה מהרחבת מחלקה). שיעורים מופשטים מייצגים בדרך כלל מושג או ישות מופשטת עם יישום חלקי או ללא יישום. לכן, כיתות מופשטות פועלות ככיתות הורה שמהן נגזרות כיתות ילד, כך שכיתת הילד תשתף את התכונות הלא שלמות של כיתת האב וניתן להוסיף פונקציונליות כדי להשלים אותן.
שיעורים מופשטים עשויים להכיל שיטות מופשטות. תת-מחלקות המרחיבות מחלקה מופשטת עשויות ליישם את השיטות המופשטות (הבירושה) הללו. אם כיתת הילד מיישמת את כל השיטות המופשטות הללו, זו מחלקה קונקרטית. אבל אם לא, גם כיתת הילד הופכת לכיתה אבסטרקטית. המשמעות של כל זה היא שכאשר המתכנתת מינתה מחלקה בתור אבסטרקט, היא אומרת שהמחלקה לא תהיה שלמה ושיהיו בה אלמנטים שצריך להשלים על ידי תת המחלקות היורשת.זוהי דרך נחמדה ליצור חוזה בין שני מתכנתים, אשר מפשטת משימות בפיתוח תוכנה. המתכנתת, שכותבת קוד לרשת, צריכה לעקוב בדיוק אחר הגדרות השיטה (אבל כמובן יכולה לקבל יישום משלה).
מהי ירושה?
ירושה הוא מושג מונחה עצמים, המאפשר למחלקות חדשות להרחיב מחלקות אחרות. מילת המפתח Extends משמשת ליישום הרעיון של ירושה בשפת התכנות Java. ירושה בעצם מספקת שימוש חוזר בקוד על ידי מתן אפשרות להרחבת מאפיינים והתנהגות של מחלקה קיימת על ידי מחלקה שהוגדרה לאחרונה. כאשר תת-מחלקה חדשה (או מחלקה נגזרת) מרחיבה מחלקת-על (או מחלקת אב) תת-מחלקה זו תירש את כל התכונות והשיטות של מחלקת העל. תת-המחלקה יכולה לעקוף באופן אופציונלי את ההתנהגות (לספק פונקציונליות חדשה או מורחבת לשיטות) שהורשתה ממחלקת האב. בדרך כלל, תת-מחלקה לא יכולה להרחיב מחלקות-על מרובות (למשל ב-Java).לכן, אינך יכול להשתמש בהרחבות עבור ירושה מרובה. כדי לקבל ירושה מרובה, עליך להשתמש בממשקים.
מה ההבדל בין שיעור מופשט לירושה?
שיעורים מופשטים מייצגים בדרך כלל מושג מופשט או ישות עם יישום חלקי או ללא יישום. ירושה מאפשרת לשיעורים חדשים להרחיב כיתות אחרות. מכיוון שלא ניתן ליצור מחלקות מופשטות, אתה צריך להשתמש במושג הירושה כדי לעשות שימוש במחלקות מופשטות. אחרת, למחלקה מופשטת אין שימוש. מחלקות מופשטות עשויות להכיל שיטות מופשטות וכאשר המחלקה מורחבת, כל השיטות (מופשטות וקונקרטיות) עוברות בירושה. המחלקה שעברה בירושה יכולה ליישם כל אחת מהשיטות או את כולן. אם כל השיטות המופשטות אינן מיושמות, אז גם המחלקה הזו הופכת למחלקה אבסטרקטית. מחלקה אינה יכולה לרשת מיותר ממחלקה אבסטרקטית אחת (זו אינה איכות של מחלקות מופשטות כשלעצמן, אלא הגבלה של ירושה).
פוסטים קשורים:
הבדל בין שיעור מופשט לשיעור בטון
הבדל בין וירטואלי ומופשט
הבדל בין מחלקה מופשטת לממשק
הבדל בין יישום להרחבה
הבדל בין גרף לעץ
תוקם תחת: תכנות מתויג עם: ABC, abstract, מופשט בסיס מחלקות, מחלקה מופשטת, מחלקות מופשטות, מילת מפתח מופשטת, שיטות מופשטות, מחלקה קונקרטית, הרחבת מילת מפתח, ירושה, מחלקה ירושה, מחלקה בירושה, Java, ירושה מרובה, מושגים מונחה עצמים, מחלקה רגילה, מחלקה על
על המחבר: Indika
אינדיקה, BSc. Eng, MSECE הנדסת מחשבים, PhD. מדעי המחשב, הוא פרופסור עוזר ויש לו תחומי עניין מחקריים בתחומי ביואינפורמטיקה, ביולוגיה חישובית ועיבוד שפה טבעית ביו-רפואית.
תגובות
-
ג'ייסון אומר
30 באוגוסט 2017 בשעה 13:25
תודה שהסברת את ההבדל. כל השאלות שלי נפתרו על ידי זה.
השב
-
Aus אומר
10 במאי 2019 בשעה 15:04
התשובה הכי טובה באינטרנט, המורה לא מסבירה שטויות ואין שום היגיון, מורה חד טון. כך אתה מסביר מושגים.
השב
להשאיר תגובה בטל תגובה
כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים
תגובה
שם
אימייל
אתר