מה ההבדל בין עומס יתר על שיטה לבין עקיפה?



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

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

מהי העמסת יתר של שיטות ב- Java?

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





  • איננו יכולים להעמיס על סוג החזרה.

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



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

  • כמו שיטות סטטיות אחרות, ניתן גם להעמיס על השיטה העיקרית ().

העמסת יתר של השיטה - העמסת יתר על השיטה וג



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

מחלקה ציבורית Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static public ראשי (מחרוזת טוענת []) {Div ob = Div חדש () ob.div (10, 2) ob.div (10, 2, 3)}}
 תְפוּקָה: 5 4

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

מדוע עומס יתר בשיטה?

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

העמסת יתר של השיטה () העיקרית:

להלן דוגמה להעומס יתר על המידה על השיטה () ב- Java.

class class Edureka {public static void main (String [] args) {System.out.println ('שלום') Edureka.main ('edurekan')} public static public main (String arg1) {System.out.println (' ברוך הבא '+ arg1) Edureka.main (' ברוך הבא ',' to edureka ')} ציבורי ריק סטטי ראשי (String arg1, String arg2) {System.out.println (' שלום ', + arg1, + arg2)}}
 תְפוּקָה: שלום ברוך הבא אדוריקן שלום, ברוך הבא לאדוריקה

דוגמאות להעמסת יתר של השיטות

  • תכנית להעמסת שיטות סטטיות בג'אווה.
מבחן מחלקה ציבורית {ציבורי סטטי ציבורי int (int a) {return 100} char stic public public (int a, int b) {return 'edureka'} public static public main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 תְפוּקָה: 100 אדוריקה
  • תכנית להעמיס שלוש שיטות באותו שם.
class public הוסף {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, כפול ב) {החזר (a + b)} ציבורי ריק סטטי ראשי (מחרוזת טוענת []) {הוסף ob = חדש הוסף () ob.add (15,25) ob.add (15,25,35) ob .הוסף (11.5, 22.5)}}
 תְפוּקָה: 40 75 34

מהי דריסת שיטה בג'אווה?

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

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

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

class Parent {void view () {System.out.println ('זו שיטת כיתת אב)}} class Child מרחיב הורה {void view () {System.out.println (' זו שיטת כיתת ילדים)}} סטטי ציבורי ריק ריק (מחרוזת טוענת []) {הורה ob = הורה חדש () ob.view () הורה ob1 = ילד חדש () ob1.view ()
 תְפוּקָה: זו שיטת כיתת ילדים

כללים לעקיפת שיטה

  • ה עריכת גישה יכול רק לאפשר יותר גישה לשיטה שנדרסה.

  • ל סופי השיטה אינה תומכת בביטול שיטות.

  • לא ניתן לבטל שיטה סטטית.

  • לא ניתן לבטל שיטות פרטיות.

  • סוג ההחזרה של שיטת העלייה חייב להיות זהה.

  • אנו יכולים לקרוא לשיטת כיתת האב בשיטת החלוף באמצעות מילת המפתח העל.

    מה ההבדל בין מעמד מופשט לממשק?
  • ל בּוֹנֶה לא ניתן לעקוף מכיוון שכיתת ילדים וכיתת הורים לא יכולות לקבל את הבנאי באותו שם.

דוגמה להחלפת שיטה

  • תכנית להצגת עקיפות באמצעות מילת מפתח סופר
class Parent {void show () {System.out.println ('שיטת כיתת אב')} class Child מרחיב הורה {void show () {super.show () System.out.println ('שיטת כיתת ילדים')} ציבורי סטטי ריק ריק (מחרוזת טוענת []) {הורה ob = ילד חדש () ob.show ()}}
 תְפוּקָה: שיטת כיתת הורים שיטת כיתת ילדים

עומס יתר לעומת עקיפה: ההבדל בין עומס יתר על שיטה לבין עקיפת שיטה

להלן ההבדלים העיקריים בין עומס יתר על השיטה בג'אווה.

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

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

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

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