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

עקוב אחר המדריך הזה כדי ללמוד כיצד להעמיס או לעקוף שיטות ב- Java.

מהי העמסת יתר של השיטה?

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

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

קָשׁוּר: חקר הירושה בשפת התכנות Java

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

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

עיין בדוגמה להעמסת יתר של השיטה בהמשך:

אריתמטיקה בכיתה {
קוביה int (int x) {
להחזיר x * x * x;
}
קובייה כפולה (x כפולה) {
להחזיר x * x * x;
}
קוביית צף (צף x) {
להחזיר x * x * x;
instagram viewer

}
ראשי סטטי ציבורי ריק (מחרוזת [] טוען) {
אריתמטיקה myMultiplication = חשבון חדש ();
System.out.println ("הקוביה של 5 היא" + myMultiplication.cube (5));
System.out.println ("הקוביה של 5.0 היא" + myMultiplication.cube (5.0));
System.out.println ("הקוביה של 0.5 היא" + myMultiplication.cube (0.5));
}
}

תְפוּקָה:

הקוביה של 5 היא 125
הקוביה של 5.0 היא 125.0
הקוביה של 0.5 היא 0.125

הקוד שלמעלה מראה כיצד ניתן להשיג קוביה מסוגים שונים (int, לְהַכפִּיל, לָצוּף) באותה שיטה.

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

מהי דריסת שיטה?

הכוונה ליישום שונה של שיטה בתת-מחלקה. השיטה חייבת להיות מוגדרת כבר בכיתת ההורים.

על השיטה העוקפת (כלומר זו שבמחלקה המשנה) להיות באותה חתימת שיטה כמו זו שבסופר-קלאס. סוג ההחזרה של השיטה העוקפת עשוי להיות זהה או תת-סוג של זה שבסופר-קלאס.

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

חשבון בכיתה {
הודעה בטלנית ציבורית () {
System.out.println ("
תודה שפתחת חשבון איתנו! ");
}
סטטי ציבורי ריק ריק (מחרוזת טוענת []) {
חשבון myAccount = חשבון חדש ();
חסכון mySavings = חסכון חדש ();
FixedDeposit myFixedDepo = חדש FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
class Savings מרחיב חשבון {
הודעה בטלנית ציבורית () {
System.out.println ("
תודה שפתחת אצלנו חשבון חיסכון! ");
}
}
class FixedDeposit מרחיב חשבון {
הודעה בטלנית ציבורית () {
System.out.println ("
תודה שפתחת אצלנו חשבון פיקדון קבוע! ");
}
}

תְפוּקָה:

תודה שפתחת חשבון איתנו!
תודה שפתחת חשבון חסכון אצלנו!
תודה שפתחת אצלנו חשבון פיקדון קבוע!

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

קָשׁוּר: מה שאתה צריך לדעת על שימוש במיתרים ב- Java

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

כדי למנוע עקיפת שיטה, השתמש במילת המפתח סופי.

הודעת בטל סופית () {
System.out.println ("
תודה שפתחת חשבון איתנו! ");
}

כאשר תת-מחלקה מנסה לעקוף אותה, תתרחש שגיאת אוסף.

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

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

שקול את מעמד העל בעל חיים.

כיתת בעלי חיים {
מהלך בטל ציבורי () {
System.out.println ("
אני יכול לזוז. ");
}
}

להלן תת-מחלקה, הנקראת דג, זה עוקף מהלך \ לזוז \ לעבור():

בכיתה דגים מרחיב בעלי חיים {
מהלך בטל ציבורי () {
System.out.println ("
אני יכול לשחות.");
super.move ();
}
סטטי ציבורי ריק ריק (מחרוזת טוענת []) {
Tilapia דגים = דגים חדשים ();
Tilapia.move ();
}
}

תְפוּקָה:

אני יכול לשחות.
אני יכול לזוז.

כאשר אתה עוקף שיטה, עליך לזכור גם את שינוי הגישה בו משתמשים. על השינוי בתת-הכיתה להיות בעל אותה רמת נראות או גבוה יותר מאשר בכיתת הבסיס. לדוגמא, אם השיטה במחלקת הבסיס מוגדרת כ- מוּגָןואז שיטת העל יכולה להיות מוּגָן אוֹ פּוּמְבֵּי.

קוד פשוט עם פולימורפיזם

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

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

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

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

אימייל
כיצד ליצור ולבצע פעולות במערכים בג'אווה

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

קרא הבא

נושאים קשורים
  • תִכנוּת
  • ג'אווה
  • הדרכות קידוד
על הסופר
ג'רום דוידסון (15 מאמרים פורסמו)

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

עוד מג'רום דוידסון

הירשם לניוזלטר שלנו

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

צעד אחד נוסף !!!

אנא אשר את כתובת הדוא"ל שלך בדוא"ל ששלחנו לך זה עתה.

.