מה ההבדל בין הרחבות ויישום בג'אווה

Mh Hhbdl Byn Hrhbwt Wyyswm Bg Wwh



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

בלוג זה ידגיש את ההבדלים בין ג'אווה 'מרחיב' ל'מיישמת'.







Java 'מרחיב' את מילת המפתח

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



תחביר



מחלקה א' {
// גוּף
}
Class B מרחיב את A {
// גוּף
}





בתחביר זה, ' ב ' מתאים לכיתת הילד שיורשת את כיתת האב ' א ' דרך ' משתרע ' מילת מפתח.

דוגמה 1: שימוש במילת המפתח 'מורחב' ב-Java



דוגמה זו משתמשת ב' משתרע ' מילת מפתח לרשת את האב, כלומר ' בסיס ' מעמד:

כיתת הורים {
מחרוזת x = 'שיער' ;
}
כיתת ילד בכיתה מרחיבה את כיתת הורים {
קוצר מחרוזת ציבורית ( ) {
לַחֲזוֹר x.concat ( 'רי' ) ;
} }
כיתה ציבורית מתארכת {
ריק סטטי ציבורי ראשי ( מחרוזת ארגומנטים [ ] ) {
אובייקט כיתת ילדים = כיתת ילדים חדשה ( ) ;
System.out.println ( object.concat ( ) ) ;
} }

על פי קטע הקוד שלמעלה, החל את השלבים הבאים:

  • ראשית, הכריז על כיתת הורה בשם ' כיתת הורים '.
  • בהגדרתו, אתחול המשתנה הנקוב.
  • כעת, ירשו כיתת ילד מכיתת האב באמצעות ' משתרע ' מילת מפתח.
  • בהגדרת מחלקת הילד, הגדר פונקציה בשם ' concat() '.
  • בהגדרת הפונקציה, הפעל את המשתנה ממחלקת האב והוסף את המחרוזת המוצהרת באמצעות ' concat() ' שיטה.
  • בתוך ה ' רָאשִׁי() שיטת ', צור אובייקט כיתת ילד באמצעות ' חָדָשׁ ' מילת המפתח וה' כיתת ילדים() 'קונסטרוקטור.
  • לבסוף, הפעל את פונקציית כיתת הילד ' concat() ' דרך האובייקט שנוצר.

תְפוּקָה

בפלט זה, ניתן לדמיין שפונקציונליות מחלקת האב, כלומר, ' משתנה(x) ' עובר בירושה כראוי באמצעות מילת המפתח 'extends' ולכן המחרוזת משורשרת בהתאם.

Java 'מיישמת' מילת מפתח

ה ' מיישם ' מילת מפתח מוחלת כדי ליישם ממשק בכיתה מאותו קובץ או קובץ חיצוני.

תחביר

ממשק ציבורי שם ממשק {
בטל x ( ) ;
ריק ברירת מחדל y ( ) {
// גוּף
}
}
class z מיישמת InterfaceName {
// גוף הכיתה
}

בתחביר הזה:

  • ' איקס ' מתייחס לשיטה מופשטת.
  • ' ו ' מציין את שיטת ברירת המחדל.
  • ' מחלקה z ' מתאים למחלקה שמיישמה את ' שם ממשק ' ממשק באמצעות ' מיישם ' מילת מפתח.

דוגמה 2: שימוש במילת המפתח 'מיישמת' ב-Java

בדוגמה הספציפית הזו, ממשק הכולל ' תַקצִיר ' ו' בְּרִירַת מֶחדָל ניתן ליישם שיטות בכיתה.

קוד ממשק

גיל הממשק הציבורי {
שם ריק ציבורי ( ) ;
ברירת מחדל ריק DOB ( ) {
System.out.println ( 'DOB -> 28/8/1999' ) ;
} }

בקוד הממשק לעיל, כלול שיטה מופשטת בשם ' שֵׁם() ' ולהגדיר את שיטת ברירת המחדל ' DOB() ' הדפסת ההודעה האמורה, בהתאמה.

קוד כיתה

כעת, המשך לשורות הקוד הבאות:

מדגם הכיתה מיישם את הגיל {
שם ריק ציבורי ( ) {
System.out.println ( 'שם -> דוד' ) ;
} }
ממשק כיתה ציבורית2 {
ריק סטטי ציבורי ראשי ( מחרוזת ארגומנטים [ ] ) {
אובייקט לדוגמה = דוגמה חדשה ( ) ;
שם אובייקט ( ) ;
object.DOB ( ) ;
} }

בגוש קוד זה:

  • הגדר מחלקה בשם ' לִטעוֹם ' יישום הממשק ' גיל ' דרך ' מיישם ' מילת מפתח.
  • בהגדרתו (המחלקה), הגדר את השיטה המופשטת ' שֵׁם() ” שצוין בממשק המציג את השם הנקוב.
  • בתוך ה ' רָאשִׁי() שיטת ', צור אובייקט מחלקה באמצעות הגישה הנדונה.
  • לבסוף, הפעל את השיטות המופשטות והברירת מחדל באמצעות האובייקט שנוצר, בהתאמה.

תְפוּקָה

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

הבדלי הליבה בין 'מרחיב' ל'מיישם' ב-Java

להלן כמה מההבדלים המרכזיים בין מילות המפתח 'מרחיב' ו'מיישמת' ב-Java:

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

סיכום

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