PracticU

הסבר על Override בתכנות מונחה עצמים

בלי כתוביותעם כתוביות
PracticU › קורס תכנות מונחה עצמים - OOP - Object Oriented Programming - חומר לימוד של מדעי המחשב › הסבר על Override בתכנות מונחה עצמים
מילון מושגים:
OOP - תכנות מונחה עצמים: גישת פיתוח שמארגנת את הקוד סביב אובייקטים המאגדים נתונים ופעולות.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
קומפיילר - תוכנה שממירה קוד מקור שנכתב בשפת תכנות לקוד שהמחשב יכול להריץ, ומדווחת על שגיאות תחביר.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.
אובייקט - יחידה בתכנות מונחה עצמים שמאגדת נתונים (תכונות) ופעולות (מתודות). נוצר בדרך כלל ממחלקה המשמשת כתבנית.

הסבר על Override בתכנות מונחה עצמים
השיעור ממשיך את נושא ההורשה ומסביר איך מחליפים פונקציה שמחלקה יורשת מקבלת מהאב, בעזרת virtual ו-override.
איך זה עובד
1. הבעיה: מחלקה יורשת רוצה לבצע את אותה פונקציה אחרת. למשל, גרירה של משאית גדולה שונה מגרירה של משאית רגילה.
2. virtual: במחלקת האב מסמנים את הפונקציה כ-virtual, כדי לאפשר למחלקות היורשות להחליף את המימוש שלה.
3. override: במחלקה היורשת כותבים פונקציה עם אותו שם ועם override, ונותנים לה גוף חדש. הפונקציה החדשה מחליפה את המימוש של האב.
4. בלי override: הקומפיילר מתריע על התנגשות בין שתי הפונקציות עם אותו שם, ולכן צריך לסמן במפורש את הכוונה.
5. בדיקה בדיבאג: קריאה ל-Tow של אובייקט מסוג BigTowTruck נכנסת לפונקציה של המחלקה הגדולה ולא לזו של האב.
6. new: מילה שמגדירה פונקציה חדשה עם אותו שם במקום החלפה. הקריאה ממחלקה זו מפעילה את הפונקציה החדשה.
בעזרת virtual ו-override אפשר להתאים התנהגות ספציפית לכל מחלקה יורשת, תוך שמירה על אותו שם פונקציה.
השיעור הבא בקורס: טווח הכרה - Scope

פרקי ההרצאה: הסבר על Override בתכנות מונחה עצמים

  1. 00:00

    המשך הורשה - Override

  2. 00:57

    ירושת פונקציות ממחלקת האב

  3. 01:57

    פעולת גרירה שונה לכל מסעית

  4. 03:57

    המילה virtual

  5. 04:44

    אפשרות דריסה במחלקות יורשות

תמלול ההרצאה: הסבר על Override בתכנות מונחה עצמים

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על Override בתכנות מונחה עצמים» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:01

    שלום לכולם, ההרצאה הזאת תהיה ההרצאה הבאה בנושא Object Oriented Programming והיא תמשיך את ההרצאה הקודמת שעסקה בנושא של הורשה. אז ההרצאה הקודמת הסתיימה בנקודה שהיינו פה שתי קלאסים, קלאס אחד שנקרא Tow Truck שהוא יורש מקלאס Car, על הקלאס Tow Truck שזה קלאס שמייצג איזה משאית גרירה יש לו פונקציה,

  2. 00:29

    פונקציה שנקראת Tow, פונקציית Tow שזה פונקציית גרירה, מגרור. עכשיו יצא מפה עוד קלאס שנקרא BigTowTruck משאית גבירה גדולה, והיא יורשת מהקלאס שנקרא TowTruck, אוקיי?

  3. 00:46

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

  4. 00:58

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

  5. 01:26

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

  6. 01:54

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

  7. 02:27

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

  8. 02:49

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

  9. 03:29

    לפונקציה tow לגרור אנחנו רוצים שתגיע לפונקציה הזאתי ל-tow שנמצאת פה ולא פה אז איך אנחנו עושים את זה הדרך שאנחנו עושים את זה היא באמצעות הגדרה של הפונקציה הזאתי שנמצאת בקלאס tow track שממנו אנחנו יורשים אנחנו עכשיו נמצאים בקלאס tow track והקלאס הזה מהקלאס הזה אנחנו יורשים פה קלאס הזה big tow track יורש את הקלאס הזה

  10. 03:59

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

  11. 04:18

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

  12. 04:44

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

לקורס המלא: קורס תכנות מונחה עצמים OOP

ההרצאה הקודמת: מחלקה sealed

ההרצאה הבאה: טווח הכרה - Scope

הרצאות קשורות מקורסים אחרים

  • תכנות מונחה עצמים ב-NodeJS
  • עקרונות תכנות מונחה עצמים - Unity OOP
  • אובייקטים ומחלקות CLASS - תכנות מונחה עצמים בשפת Dart

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב