Skip links

.

שיעור 7Object Oriented Abap Inheritance

אחד היתרונות הגדולים שלABAP OOP זה היכולת לשימוש חזור בקלאסים, והורשה(Inheritance) לוקחת את זה צעד אחד קדימה.

שמעתם פעם את המשפט “אל תמציא שוב את הגלגל”? זה בדיוק מה שהורשה באה למנוע.

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

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

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


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

נראה את זה עכשיו בקוד.

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


כמו קשר חברות שראינו בשיעור שעבר קשר הורשה מוגדר ובשלב ההגדרה של הקלאס


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

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


עכשיו אם נריץ את התוכנית הפלט יהיה:


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

בא נראה מה יקרה אם ניצור מתודה של Display בקלאס של המכונית.


 

 

 

 

 

 

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

אבל אם נעשה אקטיבציה לתוכנה נקבל את השגיאה הבאה :


הסיבה לכך היא בקלאס שאנחנו יורשים ממנו יש מתודה עם אותו השם.

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


ועכשיו אם נריץ את התוכנית נקבל את הפלט הבא:


וככה יוצרים קשר הורשה, בין שני קלאסים מקומיים.

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

נעובר לטרנזקציה SE24 ונתן שם לקלאס


אחרי היצירה נפתח החלון הבא ואנחנו רוצים שהצקבוקס של Final יהיה ריק.


צקבוקס זה אומר שהקלאס לא יכול להוריש.

עכשיו נגדיר את התכונות שלנו.


ונגדיר את המתודה.


ועכשיו נעבור ליצור את הקלאס של המכונית.



וכאן אפשר להשאיר את Final מסומן כי אנחנו לא מורשים את הקלאס הזה.

כדי ליצור את קשר ההורשה נעובר ללשונית הProperties וללחץ על כפתור הSuperClass.


לאחר מכן תתווסף לנו שורה שבה אנחנו נרשום את הקלאס שאנחנו רוצים לרשת ממנו.


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



ועכשיו אם אנחנו רוצים לשנות את המתודה של Display כמו שעשינו בדוגמא הקודמת נלחץ על המתודה ולאחר מכן נלחץ על הכפתור הבא:


וזה יוביל אותנו למתודה החדשה


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

אז דרך נוספת לרשום את המתודה שאנחנו רוצים היא כך:


שהשורה השנייה קוראת למתודה הקודמת שמדפיסה את המידע על הגלגלים.

וככה יוצרים הורשה גלובלית

 

אוהב לוי Ohav Levi – אוהב לוי
SAP Developer, ABAP, SAP CPI, Sap security, SAP authorization, C#, Unity, .NET, SQL, JAVA, NetWeaver 7.0X & 7.X.
 

.


 

סייר
גרור