הבדל בין פולימורפיזם וירושה ב-OOP

תוכן עניינים:

הבדל בין פולימורפיזם וירושה ב-OOP
הבדל בין פולימורפיזם וירושה ב-OOP

וִידֵאוֹ: הבדל בין פולימורפיזם וירושה ב-OOP

וִידֵאוֹ: הבדל בין פולימורפיזם וירושה ב-OOP
וִידֵאוֹ: מדריך Java - פרק 13 - תכנות מונחה עצמים, חלק 1 2024, יוני
Anonim

הבדל מפתח - פולימורפיזם לעומת ירושה ב-OOP

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

מהו פולימורפיזם ב-OOP?

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

עומס יתר

עיין בתוכנית שלהלן שנכתבה ב-Java.

ההבדל בין פולימורפיזם וירושה ב- OOP
ההבדל בין פולימורפיזם וירושה ב- OOP

איור 01: עומס יתר

לפי התוכנית לעיל, נוצר אובייקט מסוג A. כאשר קוראים obj.sum(); זה ייתן את הפלט הקשור לשיטה sum(). כאשר קוראים ל-obj.sum(2, 3); זה ייתן את הפלט הקשור לsum(int a, int b). ניתן להבחין כי לאותו אובייקט יש התנהגויות שונות בהתאם לסיטואציה. כאשר ישנן מספר שיטות עם אותו שם, אך עם פרמטרים שונים, זה ידוע בתור עומס יתר.זה ידוע גם כקישור סטטי או פולימורפיזם של זמן קומפילציה.

עוקף

סוג אחר של פולימורפיזם הוא עוקף. עיין בתוכנית שלהלן שנכתבה ב-Java.

ההבדל בין פולימורפיזם וירושה ב-OOP_איור 02
ההבדל בין פולימורפיזם וירושה ב-OOP_איור 02

איור 02: עוקף

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

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

כאשר ישנן שיטות עם אותו שם ואותם פרמטרים אבל בשתי מחלקות שונות, והן מקושרות עם ירושה, זה ידוע כדריסה.זה ידוע גם בשם Late binding, Dynamic Binding, Runtime Polymorphism. עומס יתר ועקיפה נקראים פולימורפיזם. זהו מושג מרכזי בתכנות מונחה עצמים.

מהי ירושה ב-OOP?

עיין בתוכנית שלהלן שנכתבה ב-Java.

ההבדל העיקרי בין פולימורפיזם וירושה ב- OOP
ההבדל העיקרי בין פולימורפיזם וירושה ב- OOP

איור 03: דוגמה לירושה

לפי התוכנית לעיל, למחלקה A יש שיטה sum() ולמחלקה B יש שיטה תת().

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

סוגי ירושה

ישנם סוגים שונים של ירושה. הם ירושה בדרגה אחת, ירושה מרובת רמות, ירושה מרובה, ירושה היררכית וירושה היברידית.

ירושה יחידה

בירושה יחידה, יש מחלקה אחת ותת מחלקה אחת. אם מחלקה A היא מחלקת העל ומחלקה B היא תת המחלקה, כל המאפיינים והשיטות של מחלקה A נגישים על ידי מחלקה B. יש רק רמה אחת; לכן, זה נקרא בתור ירושה חד-רמה.

ירושה רב-שכבתית

בירושה מרובת רמות יש שלוש רמות של מחלקות. מעמד הביניים יורש ממעמד העל. תת המחלקה יורשת ממחלקת הביניים. אם יש שלוש כיתות כמו A, B ו-C ו-A היא מחלקת העל ו-B היא מעמד הביניים. ואז B יורש מ-A ו-C יורש מ-B, זו ירושה רב-שכבתית.

ירושה מרובה

בירושה מרובה, יש הרבה מחלקות על ותת מחלקה אחת. אם יש שלוש מחלקות על הנקראות A, B, C ו-D היא תת המחלקה, אז מחלקה D יכולה לרשת מ-A, B ו-C. ירושה מרובה נתמכת בשפת התכנות C++. זה לא נתמך בשפות תכנות כמו Java או C. ממשקים משמשים להטמעת ירושה מרובה בשפות אלו.

ירושה היררכית

אם יש מחלקות שנקראות A כמחלקות-על ו-B, C הן תת-מחלקות, אותן תת-מחלקות יכולות לרשת מאפיינים ושיטות של מחלקה A. סוג זה של ירושה ידוע בתור ירושה היררכית.

ירושה היברידית

יש עוד סוג ירושה מיוחד הידוע בשם הורשה היברידית. זהו שילוב של ירושה מרובת רמות וירושות מרובות. אם A, B, C ו-D הם מחלקות ו-B יורש מ-A ו-D יורש גם מ-B ו-C, אז זו ירושה היברידית.

מהם הדמיון בין פולימורפיזם וירושה ב-OOP?

שניהם הם מושגים של תכנות מונחה עצמים

מה ההבדל בין פולימורפיזם וירושה ב-OOP?

פולימורפיזם לעומת ירושה ב-OOP

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

סיכום – פולימורפיזם לעומת ירושה ב-OOP

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

הורד את PDF Polymorphism vs Heritance ב-OOP

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

מוּמלָץ: