
Address מכילה פונקציות ונתונים שלא שייכים לחנות או לבעל הבית, ההורשה מכניסה אותם לחנות ולבעל הבית בלי הצדקה.הטקסט המלא של הדקות הראשונות בהרצאה «חוק ההורשה» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו מה זה הורשה אנחנו נכנסים למשהו שנקרא חוק ההורשה. בעזרת חוק ההורשה אנחנו יכולים לגלות האם מותר לנו לבצע הורשה מסוימת או שזה לא נכון לבצע הורשה מסוימת ובכדי להבין מה זה חוק ההורשה בואו נראה איזושהי מטלה מסוימת שנותנים לנו.
המטלה אומרת דבר כזה: עליכם ליצור תוכנית לניהול חנות. על התוכנית לבצע ניהול של החנות עצמה, נניח, הדברים שיש בה, וגם לנהל את הבעלים של החנות, בעל הבית.
ומה שהחנות עצמה צריכה להכיל, המאפיינים של החנות, עיר, רחוב, מספר בית, מיקוד, כמובן הכתובת של החנות, מספר הפריטים שיש שמה וסוג הפריטים שיש בחנות.
בעל הבית יש לו את המאפיינים הבאים: עיר, רחוב, מספר בית, מיקוד, שזה כמובן הכתובת שלו, איפה הוא גר, שם פרטי ושם משפחה של בעל הבית.
עכשיו, איך בעצם הייתם בונים תוכנית כזאת? אז תחשבו דקה-שתיים, תעצרו את הוידאו, תחשבו בדיוק איך הייתם יכולים לבצע אפיון של התוכנית הזאת. כמובן יש פה דברים שחוזרים על עצמם, אז יש לכם כבר את הכלים שאתם מכירים בשביל לחסוך קוד, וניתן לכם דקה-שתיים, תעצרו, תשרטטו על דף בדיוק מהו העץ הורשה שהייתם בוחרים
לבצע עבור התוכנית הפשוטה הזאת ואז תמשיכו את הוידאו אוקיי אבל אני מקווה שרשמתם את הכל ובואו נסתכל על עץ הורשה שיכול להיות שניתן לביצוע אז יש לנו כאן מחלקה שהיא קודם כל מחלקת בסיס ואנחנו זוכרים שהדברים המשותפים שהיו בין שתי המחלקות
זה בעצם עיר, רחוב, מספר בית ומיקוד אז אנחנו יכולים לקחת איזושהי מחלקת בסיס ופשוט לשים שם את הערכים האלה כך שהם יהיו משותפים עבור שתי המחלקות, החנות ובעל הבית.
אבל מה בעצם המחלקה הזאת מייצגת? אם יש לה עיר, רחוב, מספר בית ומיקוד, אז מן הסתם המחלקה הזאת מייצגת כתובת.
סבבה? אז יש לנו פה מחלקה שנקראת address והיא מייצגת כתובת. עכשיו אנחנו יכולים בשביל לחסוך קוד, במקום להגדיר את כל הפרמטרים האלה במחלקות נוספות, פשוט לבצע הורשה למחלקה נוספת, וזאת החנות.
החנות יורשת את המחלקה address, ואנחנו מוסיפים לחנות את הדברים שיש בחנות, לדוגמה מספר או סוג הפריטים ומספר הפריטים שיש במלאי.
בנוסף אנחנו יכולים לבצע עוד פעם הורשה ולרשת מחלקה נוספת, וזאת בעצם ה-Owner ובעל הבית. לבעל הבית, בנוסף לעיר רחוב מספר בית ומיקוד, יש גם שם פרטי ושם משפחה.
אוקיי, אז אם זה העץ הורשה שאתם בניתם, בואו נמשיך ונראה כמה דברים לגביו. דבר ראשון, מה שאנחנו הולכים לראות זה Inheritance Rule, כלומר חוק הורשה.
והחוק ההורשה אומר דבר כזה, אם קיימת לכם מחלקה A, מחלקת בסיס כלשהי, וקיימת לכם מחלקה B שיורשת את A, או שאתם רוצים לבצע את זה, אז החוק אומר דבר כזה, המחלקה B יכולה לרשת את המחלקה A אך ורק אם אתם יכולים לומר ש-B היא גם A. אם אתם יכולים לומר שהישות B היא גם,
או ממש להשתמש במשפט היא גם, הישות B היא גם או הוא גם A מותר לכם לבצע הורשה. אם אתם לא יכולים לומר את זה או שזה לא הגיוני לומר את זה או שזה לא נכון תמיד אז אסור לכם לבצע הורשה.
עכשיו, בואו ניקח כמה דוגמאות למצב שבו אנחנו יכולים להגיד את זה. באחת הדוגמאות הקודמות לקחנו מחלקה פרסון, אמפלואי, קסטומר שיורשים את פרסון. האם אנחנו יכולים להגיד שעובד הוא גם אדם?
אנחנו יכולים להגיד את זה, ולכן עובד יכול לרשת אדם. האם אנחנו יכולים להגיד שלקוח הוא גם אדם? אנחנו יכולים להגיד את זה, ולכן לקוח יכול לרשת אדם.
דוגמה נוספת, יש לנו פריט לבוש שאותו יורש מכנסיים וחולצה. האם מכנסיים זה פריט לבוש? תשובה כן. מכנסיים יכולים לרשת פריט לבוש.
האם חולצה היא פריט לבוש? תשובה כן, חולצה יכולה לרשת פריט לבוש. כנראה שלפריט לבוש יש כל מיני מאפיינים שאנחנו רוצים אותם במכנסיים וחולצה או כל מיני פונקציות שאנחנו רוצים אותם במכנסיים וחולצה.
דוגמה נוספת יש לנו פה מחלקת בסיס צורה, מחלקה עיגול, מחלקת טריאנגל, מחלקה ריקטנגל שיורשים צורה. האם אנחנו יכולים להגיד שעיגול הוא גם צורה?
או שמלבן הוא גם צורה? או שמשולש הוא גם צורה? ואנחנו יכולים להגיד את שלושת הדברים האלה ולכן אין פה שום בעיה של הורשה. בואו נראה דוגמה אחרונה.
כאן יש לנו מחלקת בסיס כלי רכב. מכונית יורשת כלי רכב. האם אנחנו יכולים להגיד שמכונית היא כלי רכב? היא גם כלי רכב? תשובה כן.
האם אנחנו יכולים להגיד שאופנוע הוא כלי רכב? תשובה כן. יש פה הורשה. האם אנחנו יכולים להגיד שמשאית היא כלי רכב?
תשובה, כן, יש פה הורשה. כאן למטה אנחנו יכולים לראות מכונית פרטית שיורשת מכונית. האם אנחנו יכולים להגיד שמכונית פרטית היא גם מכונית?
תשובה, כן, יש פה הורשה. ההורשה מסתדרת. האם אנחנו יכולים להגיד שוואן הוא גם מכונית? אנחנו יכולים להגיד את זה.