ݺߣ

ݺߣShare a Scribd company logo
ג'אווה - תכנות מונחה עצמים - ממשקים
‫ממשקים‬-Interfaces
‫בעלות‬ ‫מתודות‬ ‫של‬ ‫מירושה‬ ‫כתוצאה‬ ‫וקונפליקטים‬ ‫בעיות‬ ‫עוד‬ ‫לא‬ .‫המרובה‬ ‫ההורשה‬ ‫לנושא‬ ‫ג'אווה‬ ‫של‬ ‫הפתרון‬ ‫הוא‬ ‫ממשק‬
.‫עבותה‬ ‫מחלקות‬ ‫היררכיית‬ ‫עם‬ ‫מיותרת‬ ‫התעסקות‬ ‫עוד‬ ‫לא‬ .‫שונות‬ ‫ממחלקות‬ ‫שונים‬ ‫ומימושים‬ ‫זהים‬ ‫שמות‬
‫מיותר‬ ‫לרשת‬ ‫ניתן‬ ‫לא‬ ‫אמנם‬.‫ממשקים‬ ‫של‬ ‫מוגבל‬ ‫בלתי‬ '‫מס‬ ‫ליישם‬ ‫ניתן‬ ‫בהחלט‬ ‫אך‬ ,‫אחת‬ ‫ממחלקה‬
:‫הבאים‬ ‫החוקים‬ ‫בה‬ ‫שמתקיימים‬ ‫מחלקה‬ ‫כזו‬ ,‫למחלקה‬ ‫ממשק‬ ‫לדמות‬ ‫ניתן‬
‫כ‬ ‫מוגדרת‬ ‫להיות‬ ‫חייבת‬ ‫שלה‬ ‫מהמתודות‬ ‫ואחת‬ ‫אחת‬ ‫כל‬-public abstract
‫כ‬ ‫מוגדר‬ ‫להיות‬ ‫חייב‬ ‫שלה‬ ‫מהמשתנים‬ ‫ואחד‬ ‫אחד‬ ‫כל‬-static final
‫הוא‬ ‫הרעיון‬‫במחלקות‬ ‫ממומשים‬ ‫לראות‬ ‫שנרצה‬ )‫הגדרתן‬ ‫(שאת‬ ‫מתודות‬ ‫ועל‬ )‫נוכחותם‬ ‫(שאת‬ ‫משתנים‬ ‫על‬ ‫בממשק‬ ‫להצהיר‬
.‫שהוגדרו‬ ‫בחוקים‬ ‫הממשק‬ ‫מאפייני‬ ‫יעמדו‬ ,‫הנ"ל‬ ‫השמורות‬ ‫במילים‬ ‫שימוש‬ ‫נעשה‬ ‫לא‬ ‫אם‬ ‫גם‬ .‫הממשק‬ ‫אותו‬ ‫את‬ ‫יישמו‬ ‫אשר‬
‫מ‬ ‫זוהי‬ ‫שממשק‬ ‫הרי‬ ,‫אובייקטים‬ ‫נוצרים‬ ‫ממנה‬ "‫ל"שבלונה‬ ‫מחלקה‬ ‫דימינו‬ ‫אם‬‫תכונות‬ ‫של‬ ‫יותר‬ ‫עוד‬ ‫כללית‬ ‫שבלונה‬ ‫הגדרת‬ ‫עין‬
.‫הממשק‬ ‫אותו‬ ‫את‬ ‫מיישמת‬ ‫שהיא‬ ‫תצהיר‬ ‫שהיא‬ ‫כך‬ ‫ע"י‬ ‫אליה‬ "‫"לאמץ‬ ‫יכולה‬ ‫מחלקה‬ ‫שכל‬ ,‫כזו‬ ,‫מחלקה‬ ‫ופעולות‬
‫לחבילה‬ ‫להשתייך‬ ‫יכול‬ ‫ממשק‬ .‫אחרים‬ ‫ממשקים‬ ‫של‬ ‫הגדרתם‬ ‫את‬ ‫להרחיב‬ ‫יכול‬ ‫וממשק‬ ,‫מממשק‬ ‫אובייקט‬ ‫ליצור‬ ‫ניתן‬ ‫לא‬
‫היררכיית‬ ‫של‬ ‫והחוקיות‬‫כאן‬ ‫גם‬ ‫עובדת‬ ‫במחלקות‬ ‫שראינו‬ ‫התיקיות‬–‫בקובץ‬ ‫ישמר‬ ‫ממשק‬ ‫קובץ‬ ,‫כלומר‬ ,‫הידור‬ ‫מבחינת‬ ‫גם‬
‫סיומת‬ ‫עם‬java‫סיומת‬ ‫עם‬ ‫לקובץ‬ ‫ויהודר‬class.‫משתייך‬ ‫הוא‬ ‫אליה‬ ‫לחבילה‬ ‫בהתאם‬ ‫התיקיות‬ ‫היררכיית‬ ‫בתוך‬ ‫שישמר‬
‫מוצהרו‬ ‫אשר‬ ‫הפעולות‬ ‫אותן‬ ‫כל‬ ‫את‬ ‫לממש‬ ‫החובה‬ ‫עליה‬ ‫חלה‬ ,‫ממשק‬ ‫מממשת‬ ‫שמחלקה‬ ‫ברגע‬‫מנת‬ ‫על‬ ‫הממשק‬ ‫באותו‬ ‫ת‬
‫אבסטרקטית‬ ‫מתודה‬ ‫לפחות‬ ‫תכיל‬ ‫היא‬ ,‫המתודות‬ ‫כל‬ ‫את‬ ‫תממש‬ ‫לא‬ ‫היא‬ ‫באם‬ .‫הזו‬ ‫מהמחלקה‬ ‫אובייקט‬ ‫לייצר‬ ‫יהיה‬ ‫שניתן‬
‫ע"י‬ ‫המממשת‬ ‫המחלקה‬ ‫של‬ ‫ההגדרה‬ ‫בשורת‬ ‫זאת‬ ‫לציין‬ ‫יש‬ ‫כך‬ ‫ובשל‬ ‫לאבסטרקטית‬ ‫כולה‬ ‫המחלקה‬ ‫את‬ ‫שהופך‬ ‫מה‬ ,‫אחת‬
‫השמורה‬ ‫המילה‬ ‫הוספת‬abstract.
‫שהמ‬ ‫לב‬ ‫נשים‬.‫מחדש‬ ‫והגדרה‬ ‫לדריסה‬ ‫ניתנים‬ ‫או‬ ,)‫הסופי‬ ‫המשתנה‬ ‫(ערכי‬ ‫שהם‬ ‫כפי‬ ‫לשימוש‬ ‫ניתנים‬ ‫שתנים‬
‫במילה‬ ‫שימוש‬ ‫תוך‬ ,‫מחלקה‬ ‫שמוגדרת‬ ‫כשם‬ ‫תתבצע‬ ‫הממשק‬ ‫הגדרת‬interface‫המילה‬ ‫במקום‬class:
public interface InterfaceName {
static final varType varName1=value;
static final varType varName2=value;
public abstract returnType methodName1();
public abstract returnType methodName2();
}
:‫הבא‬ ‫באופן‬ ‫יתבצע‬ ‫מחלקה‬ ‫ע"י‬ ‫הממשק‬ ‫אותו‬ ‫של‬ ‫ומימוש‬
public class ClassName implements InterfaceName {
varType varName1;
varType final varName2=value;// ‫ניתן‬‫בממשק‬ ‫מהגדרתו‬ ‫ערכו‬ ‫את‬ ‫נקבל‬ .‫אותו‬ ‫להגדיר‬ ‫מבלי‬ ‫זה‬ ‫למשתנה‬ ‫לפנות‬
public returnType methodName1() {
}
public returnType methodName2() {
}
}
.‫בממשק‬ ‫שהופיעו‬ ‫והמשתנים‬ ‫המתודות‬ ‫של‬ ‫דריסה‬ ‫מבצעים‬ ‫בעצם‬ ‫אנו‬ ,‫הממשק‬ ‫את‬ ‫מממשים‬ ‫אנו‬ ‫שכאשר‬ ‫נבחין‬
‫הגדרנו‬ ‫עתה‬ ‫עד‬overriding.‫הנדרס‬ ‫לחתימת‬ ‫זהה‬ ‫תהיה‬ ‫הדורס‬ ‫שחתימת‬ ‫כתנאי‬ ‫שחייבנו‬ ‫כך‬
,‫מאותחלים‬ ‫סופיים‬ ‫משתנים‬ ‫להציב‬ ‫עלינו‬ ‫יש‬ ‫הממשק‬ ‫שבהגדרת‬ ‫לב‬ ‫נשים‬ ,‫מעט‬ ‫משתנה‬ ‫הזו‬ ‫החוקיות‬ ‫ממשק‬ ‫של‬ ‫במימוש‬
‫חייבות‬ ‫ולא‬ ‫מימוש‬ ‫להכיל‬ ‫יכולות‬ ‫מתודות‬ ,‫כן‬ ‫כמו‬ .‫עוד‬ ‫סופיים‬ ‫להיות‬ ‫חייבים‬ ‫אינם‬ ‫המשתנים‬ ‫המממשת‬ ‫במחלקה‬ ‫בעוד‬
‫ל‬.‫אבסטרקטיות‬ ‫הישאר‬
:‫המימוש‬ ‫על‬ ‫אז‬ ‫ורק‬ ‫הירושה‬ ‫על‬ ‫יוצהר‬ ‫קודם‬ ,‫אחרת‬ ‫ממחלקה‬ ‫יורשת‬ ‫גם‬ ,‫המממשת‬ ‫המחלקה‬ ‫אותה‬ ‫אם‬
public class ClassName1 extends ClassName2 implements InterfaceName {
}
:‫כך‬ ‫תיראה‬ ‫ההגדרה‬ ,‫אחד‬ ‫ממשק‬ ‫יותר‬ ‫מממשת‬ ‫המחלקה‬ ‫אותה‬ ‫אם‬
public class ClassName implements InterfaceName1, InterfaceName2, …, InterfaceNameN {
}
:‫אחר‬ ‫ממשק‬ ‫של‬ ‫הגדרתו‬ ‫את‬ ‫להרחיב‬ ‫יכול‬ ‫ממשק‬ ,‫כאמור‬
public interface ExtendingInterface extends InterfaceName {
}
:‫מרובים‬ ‫ממשקים‬ ‫של‬ ‫הגדרתם‬ ‫את‬ ‫להרחיב‬ ‫ממשק‬ ‫יכול‬ ,‫כן‬ ‫כמו‬
public interface ExtendingInterface extends InterfaceName1, InterfaceName2… {
}
‫להגדיר‬ ‫ניתן‬ :‫לדוגמה‬ ,‫טיפוס‬ ‫כאל‬ ‫תהיה‬ ‫לממשק‬ ‫ההתייחסות‬ ‫שכל‬ ,‫ומכאן‬ ‫חדש‬ ‫טיפוס‬ ‫של‬ ‫הגדרה‬ ‫מהווה‬ ‫הממשק‬ ‫הגדרת‬
.‫הממשק‬ ‫מסוג‬ ‫פרמטרים‬ ‫לקבל‬ ‫וניתן‬ ‫הממשק‬ ‫מטיפוס‬ ‫חזרה‬ ‫ערך‬ ‫להחזיר‬ ‫ניתן‬ ,‫ממשק‬ ‫מטיפוס‬ ‫משתנה‬
‫דרך‬ ‫גישה‬ ‫כאשר‬ ,‫הממשק‬ ‫אותו‬ ‫את‬ ‫שמיישמת‬ ‫ממחלקה‬ ‫שנוצר‬ ‫לאובייקט‬ ‫ברפרנס‬ ‫להחזיק‬ ‫יכול‬ ‫ממשק‬ ‫מטיפוס‬ ‫משתנה‬
.‫המיישמת‬ ‫במחלקה‬ ‫שהוגדרו‬ ‫לכאלו‬ ‫ולא‬ ‫בממשק‬ ‫שהוגדרו‬ ‫ופעולות‬ ‫תכונות‬ ‫כלפי‬ ‫רק‬ ‫תאפשר‬ ‫זה‬ ‫משתנה‬
‫הו‬ ‫אם‬ ‫גם‬ ,‫בו‬ ‫שמוגדרים‬ ‫המאפיינים‬ ‫את‬ ‫רק‬ "‫"לראות‬ ‫מסוגל‬ ‫ממשק‬ ‫מסוג‬ ‫משתנה‬ ,‫כלומר‬‫לאובייקט‬ ‫ברפרנס‬ ‫מחזיק‬ ‫א‬
.‫יותר‬ "‫"משוכלל‬
‫נבצע‬ ‫באם‬ ‫ורק‬ ,‫להכיל‬ ‫העתיד‬ ‫למשתנה‬ ‫המוכל‬ ‫האובייקט‬ ‫של‬ ‫הרפרנס‬ ‫טיפוס‬ ‫בין‬ ‫התאמה‬ ‫ויש‬ ‫במידה‬ ‫רק‬ ‫אפשרי‬ ‫ההיפך‬
‫המרת‬casting‫את‬ ‫שמממשת‬ ‫מחלקה‬ ‫מסוג‬ ‫משתנה‬ ‫בתוך‬ ‫ממשק‬ ‫מסוג‬ ‫לאובייקט‬ ‫רפרנס‬ ‫להציב‬ ‫נרצה‬ ‫אם‬ ,‫כלומר‬ ,‫מתאימה‬
‫חייבים‬ ‫נהיה‬ ,‫הממשק‬‫שהמשתנה‬ ‫ובלבד‬ ‫המממשת‬ ‫המחלקה‬ ‫לסוג‬ ‫ממשק‬ ‫מסוג‬ ‫האובייקט‬ ‫של‬ ‫הרפרנס‬ ‫של‬ ‫המרה‬ ‫לבצע‬
‫לגבי‬ ‫וכמובן‬ ‫מורישה‬ ‫ממחלקה‬ ‫שיורשת‬ ‫מחלקה‬ ‫לגבי‬ ‫כנ"ל‬ .‫מממשת‬ ‫מחלקה‬ ‫מסוג‬ ‫לאובייקט‬ ‫ברפרנס‬ ‫מחזיר‬ ‫ממשק‬ ‫מסוג‬
.‫אליו‬ ‫הרפרנס‬ ‫את‬ ‫רק‬ ‫אלא‬ ,‫האובייקט‬ ‫את‬ ‫משנה‬ ‫לא‬ ‫כמובן‬ ‫ההמרה‬ .‫המחלקה‬ ‫מאותה‬ ‫טיפוס‬
‫ל‬ ‫ניתן‬‫השמורה‬ ‫המילה‬ ‫באמצעות‬ ‫זו‬ ‫התאמה‬ ‫בדוק‬instanceof.
:‫נסביר‬
‫השמורה‬ ‫במילה‬ ‫להשתמש‬ ‫ניתן‬ ,‫מסוים‬ ‫ממשק‬ ‫שמיישמת‬ ‫ממחלקה‬ ‫נוצר‬ ‫אובייקט‬ ‫אם‬ ‫לדעת‬ ‫ע"מ‬instanceof:‫הבא‬ ‫באופן‬
if(objectRef instanceof InterfaceName) ==true if it is
==false if it's not
‫מרגע‬‫באופן‬ ‫זאת‬ ‫נעשה‬ .‫מחלקות‬ ‫של‬ ‫תכונות‬ ‫לסימון‬ "‫סימון‬ ‫"ממשק‬ ‫יצירת‬ ‫על‬ ‫לדבר‬ ‫גם‬ ‫נכון‬ ,‫בפנינו‬ ‫פרושה‬ ‫זו‬ ‫שאינדיקציה‬
:‫הבא‬
interface CanDoOperation {
public abstract doOperation();
}
:‫בפנינו‬ ‫הניצבות‬ ‫אפשרויות‬ ‫שתי‬ ‫נציין‬ ,‫כך‬ ‫ומתוך‬
‫ב‬ ‫להשתמש‬ ‫נוכל‬-instanceof‫באוביי‬ ‫לטפל‬ ‫ע"מ‬‫מסוימת‬ ‫בדרך‬ ‫מסוימים‬ ‫קטים‬
‫כלשהי‬ ‫תכונה‬ ‫בעלת‬ ‫היא‬ ‫שמחלקה‬ ‫לסמן‬ ‫יהיה‬ ‫תפקידו‬ ‫שכל‬ ‫ריק‬ ‫ממשק‬ ‫להגדיר‬ ‫נוכל‬
‫בהם‬ ‫למקרים‬ ‫הולם‬ ‫טיפול‬ ‫לתת‬ ,‫כלומר‬ ,‫ריצה‬ ‫בזמן‬ ‫חריגים‬ ‫של‬ ‫זריקה‬ ‫למנוע‬ ‫ע"מ‬ ‫זה‬ ‫במידע‬ ‫להשתמש‬ ‫נוכל‬instanceof
‫אז‬ ‫(שהרי‬ ‫שקר‬ ‫ערך‬ ‫יחזיר‬casting‫ערך‬ ‫יחזיר‬ ‫בהם‬ ‫למקרים‬ ‫הולם‬ ‫טיפול‬ ‫ולתת‬ )‫למשל‬ ‫חוקי‬ ‫יהיה‬ ‫לא‬true‫את‬ ‫לבצע‬ ‫(ניתן‬
.)‫ההמרה‬

More Related Content

ג'אווה - תכנות מונחה עצמים - ממשקים

  • 2. ‫ממשקים‬-Interfaces ‫בעלות‬ ‫מתודות‬ ‫של‬ ‫מירושה‬ ‫כתוצאה‬ ‫וקונפליקטים‬ ‫בעיות‬ ‫עוד‬ ‫לא‬ .‫המרובה‬ ‫ההורשה‬ ‫לנושא‬ ‫ג'אווה‬ ‫של‬ ‫הפתרון‬ ‫הוא‬ ‫ממשק‬ .‫עבותה‬ ‫מחלקות‬ ‫היררכיית‬ ‫עם‬ ‫מיותרת‬ ‫התעסקות‬ ‫עוד‬ ‫לא‬ .‫שונות‬ ‫ממחלקות‬ ‫שונים‬ ‫ומימושים‬ ‫זהים‬ ‫שמות‬ ‫מיותר‬ ‫לרשת‬ ‫ניתן‬ ‫לא‬ ‫אמנם‬.‫ממשקים‬ ‫של‬ ‫מוגבל‬ ‫בלתי‬ '‫מס‬ ‫ליישם‬ ‫ניתן‬ ‫בהחלט‬ ‫אך‬ ,‫אחת‬ ‫ממחלקה‬ :‫הבאים‬ ‫החוקים‬ ‫בה‬ ‫שמתקיימים‬ ‫מחלקה‬ ‫כזו‬ ,‫למחלקה‬ ‫ממשק‬ ‫לדמות‬ ‫ניתן‬ ‫כ‬ ‫מוגדרת‬ ‫להיות‬ ‫חייבת‬ ‫שלה‬ ‫מהמתודות‬ ‫ואחת‬ ‫אחת‬ ‫כל‬-public abstract ‫כ‬ ‫מוגדר‬ ‫להיות‬ ‫חייב‬ ‫שלה‬ ‫מהמשתנים‬ ‫ואחד‬ ‫אחד‬ ‫כל‬-static final ‫הוא‬ ‫הרעיון‬‫במחלקות‬ ‫ממומשים‬ ‫לראות‬ ‫שנרצה‬ )‫הגדרתן‬ ‫(שאת‬ ‫מתודות‬ ‫ועל‬ )‫נוכחותם‬ ‫(שאת‬ ‫משתנים‬ ‫על‬ ‫בממשק‬ ‫להצהיר‬ .‫שהוגדרו‬ ‫בחוקים‬ ‫הממשק‬ ‫מאפייני‬ ‫יעמדו‬ ,‫הנ"ל‬ ‫השמורות‬ ‫במילים‬ ‫שימוש‬ ‫נעשה‬ ‫לא‬ ‫אם‬ ‫גם‬ .‫הממשק‬ ‫אותו‬ ‫את‬ ‫יישמו‬ ‫אשר‬ ‫מ‬ ‫זוהי‬ ‫שממשק‬ ‫הרי‬ ,‫אובייקטים‬ ‫נוצרים‬ ‫ממנה‬ "‫ל"שבלונה‬ ‫מחלקה‬ ‫דימינו‬ ‫אם‬‫תכונות‬ ‫של‬ ‫יותר‬ ‫עוד‬ ‫כללית‬ ‫שבלונה‬ ‫הגדרת‬ ‫עין‬ .‫הממשק‬ ‫אותו‬ ‫את‬ ‫מיישמת‬ ‫שהיא‬ ‫תצהיר‬ ‫שהיא‬ ‫כך‬ ‫ע"י‬ ‫אליה‬ "‫"לאמץ‬ ‫יכולה‬ ‫מחלקה‬ ‫שכל‬ ,‫כזו‬ ,‫מחלקה‬ ‫ופעולות‬ ‫לחבילה‬ ‫להשתייך‬ ‫יכול‬ ‫ממשק‬ .‫אחרים‬ ‫ממשקים‬ ‫של‬ ‫הגדרתם‬ ‫את‬ ‫להרחיב‬ ‫יכול‬ ‫וממשק‬ ,‫מממשק‬ ‫אובייקט‬ ‫ליצור‬ ‫ניתן‬ ‫לא‬ ‫היררכיית‬ ‫של‬ ‫והחוקיות‬‫כאן‬ ‫גם‬ ‫עובדת‬ ‫במחלקות‬ ‫שראינו‬ ‫התיקיות‬–‫בקובץ‬ ‫ישמר‬ ‫ממשק‬ ‫קובץ‬ ,‫כלומר‬ ,‫הידור‬ ‫מבחינת‬ ‫גם‬ ‫סיומת‬ ‫עם‬java‫סיומת‬ ‫עם‬ ‫לקובץ‬ ‫ויהודר‬class.‫משתייך‬ ‫הוא‬ ‫אליה‬ ‫לחבילה‬ ‫בהתאם‬ ‫התיקיות‬ ‫היררכיית‬ ‫בתוך‬ ‫שישמר‬ ‫מוצהרו‬ ‫אשר‬ ‫הפעולות‬ ‫אותן‬ ‫כל‬ ‫את‬ ‫לממש‬ ‫החובה‬ ‫עליה‬ ‫חלה‬ ,‫ממשק‬ ‫מממשת‬ ‫שמחלקה‬ ‫ברגע‬‫מנת‬ ‫על‬ ‫הממשק‬ ‫באותו‬ ‫ת‬ ‫אבסטרקטית‬ ‫מתודה‬ ‫לפחות‬ ‫תכיל‬ ‫היא‬ ,‫המתודות‬ ‫כל‬ ‫את‬ ‫תממש‬ ‫לא‬ ‫היא‬ ‫באם‬ .‫הזו‬ ‫מהמחלקה‬ ‫אובייקט‬ ‫לייצר‬ ‫יהיה‬ ‫שניתן‬ ‫ע"י‬ ‫המממשת‬ ‫המחלקה‬ ‫של‬ ‫ההגדרה‬ ‫בשורת‬ ‫זאת‬ ‫לציין‬ ‫יש‬ ‫כך‬ ‫ובשל‬ ‫לאבסטרקטית‬ ‫כולה‬ ‫המחלקה‬ ‫את‬ ‫שהופך‬ ‫מה‬ ,‫אחת‬ ‫השמורה‬ ‫המילה‬ ‫הוספת‬abstract. ‫שהמ‬ ‫לב‬ ‫נשים‬.‫מחדש‬ ‫והגדרה‬ ‫לדריסה‬ ‫ניתנים‬ ‫או‬ ,)‫הסופי‬ ‫המשתנה‬ ‫(ערכי‬ ‫שהם‬ ‫כפי‬ ‫לשימוש‬ ‫ניתנים‬ ‫שתנים‬ ‫במילה‬ ‫שימוש‬ ‫תוך‬ ,‫מחלקה‬ ‫שמוגדרת‬ ‫כשם‬ ‫תתבצע‬ ‫הממשק‬ ‫הגדרת‬interface‫המילה‬ ‫במקום‬class: public interface InterfaceName { static final varType varName1=value; static final varType varName2=value; public abstract returnType methodName1(); public abstract returnType methodName2(); } :‫הבא‬ ‫באופן‬ ‫יתבצע‬ ‫מחלקה‬ ‫ע"י‬ ‫הממשק‬ ‫אותו‬ ‫של‬ ‫ומימוש‬ public class ClassName implements InterfaceName { varType varName1; varType final varName2=value;// ‫ניתן‬‫בממשק‬ ‫מהגדרתו‬ ‫ערכו‬ ‫את‬ ‫נקבל‬ .‫אותו‬ ‫להגדיר‬ ‫מבלי‬ ‫זה‬ ‫למשתנה‬ ‫לפנות‬ public returnType methodName1() { } public returnType methodName2() { } }
  • 3. .‫בממשק‬ ‫שהופיעו‬ ‫והמשתנים‬ ‫המתודות‬ ‫של‬ ‫דריסה‬ ‫מבצעים‬ ‫בעצם‬ ‫אנו‬ ,‫הממשק‬ ‫את‬ ‫מממשים‬ ‫אנו‬ ‫שכאשר‬ ‫נבחין‬ ‫הגדרנו‬ ‫עתה‬ ‫עד‬overriding.‫הנדרס‬ ‫לחתימת‬ ‫זהה‬ ‫תהיה‬ ‫הדורס‬ ‫שחתימת‬ ‫כתנאי‬ ‫שחייבנו‬ ‫כך‬ ,‫מאותחלים‬ ‫סופיים‬ ‫משתנים‬ ‫להציב‬ ‫עלינו‬ ‫יש‬ ‫הממשק‬ ‫שבהגדרת‬ ‫לב‬ ‫נשים‬ ,‫מעט‬ ‫משתנה‬ ‫הזו‬ ‫החוקיות‬ ‫ממשק‬ ‫של‬ ‫במימוש‬ ‫חייבות‬ ‫ולא‬ ‫מימוש‬ ‫להכיל‬ ‫יכולות‬ ‫מתודות‬ ,‫כן‬ ‫כמו‬ .‫עוד‬ ‫סופיים‬ ‫להיות‬ ‫חייבים‬ ‫אינם‬ ‫המשתנים‬ ‫המממשת‬ ‫במחלקה‬ ‫בעוד‬ ‫ל‬.‫אבסטרקטיות‬ ‫הישאר‬ :‫המימוש‬ ‫על‬ ‫אז‬ ‫ורק‬ ‫הירושה‬ ‫על‬ ‫יוצהר‬ ‫קודם‬ ,‫אחרת‬ ‫ממחלקה‬ ‫יורשת‬ ‫גם‬ ,‫המממשת‬ ‫המחלקה‬ ‫אותה‬ ‫אם‬ public class ClassName1 extends ClassName2 implements InterfaceName { } :‫כך‬ ‫תיראה‬ ‫ההגדרה‬ ,‫אחד‬ ‫ממשק‬ ‫יותר‬ ‫מממשת‬ ‫המחלקה‬ ‫אותה‬ ‫אם‬ public class ClassName implements InterfaceName1, InterfaceName2, …, InterfaceNameN { } :‫אחר‬ ‫ממשק‬ ‫של‬ ‫הגדרתו‬ ‫את‬ ‫להרחיב‬ ‫יכול‬ ‫ממשק‬ ,‫כאמור‬ public interface ExtendingInterface extends InterfaceName { } :‫מרובים‬ ‫ממשקים‬ ‫של‬ ‫הגדרתם‬ ‫את‬ ‫להרחיב‬ ‫ממשק‬ ‫יכול‬ ,‫כן‬ ‫כמו‬ public interface ExtendingInterface extends InterfaceName1, InterfaceName2… { } ‫להגדיר‬ ‫ניתן‬ :‫לדוגמה‬ ,‫טיפוס‬ ‫כאל‬ ‫תהיה‬ ‫לממשק‬ ‫ההתייחסות‬ ‫שכל‬ ,‫ומכאן‬ ‫חדש‬ ‫טיפוס‬ ‫של‬ ‫הגדרה‬ ‫מהווה‬ ‫הממשק‬ ‫הגדרת‬ .‫הממשק‬ ‫מסוג‬ ‫פרמטרים‬ ‫לקבל‬ ‫וניתן‬ ‫הממשק‬ ‫מטיפוס‬ ‫חזרה‬ ‫ערך‬ ‫להחזיר‬ ‫ניתן‬ ,‫ממשק‬ ‫מטיפוס‬ ‫משתנה‬ ‫דרך‬ ‫גישה‬ ‫כאשר‬ ,‫הממשק‬ ‫אותו‬ ‫את‬ ‫שמיישמת‬ ‫ממחלקה‬ ‫שנוצר‬ ‫לאובייקט‬ ‫ברפרנס‬ ‫להחזיק‬ ‫יכול‬ ‫ממשק‬ ‫מטיפוס‬ ‫משתנה‬ .‫המיישמת‬ ‫במחלקה‬ ‫שהוגדרו‬ ‫לכאלו‬ ‫ולא‬ ‫בממשק‬ ‫שהוגדרו‬ ‫ופעולות‬ ‫תכונות‬ ‫כלפי‬ ‫רק‬ ‫תאפשר‬ ‫זה‬ ‫משתנה‬ ‫הו‬ ‫אם‬ ‫גם‬ ,‫בו‬ ‫שמוגדרים‬ ‫המאפיינים‬ ‫את‬ ‫רק‬ "‫"לראות‬ ‫מסוגל‬ ‫ממשק‬ ‫מסוג‬ ‫משתנה‬ ,‫כלומר‬‫לאובייקט‬ ‫ברפרנס‬ ‫מחזיק‬ ‫א‬ .‫יותר‬ "‫"משוכלל‬ ‫נבצע‬ ‫באם‬ ‫ורק‬ ,‫להכיל‬ ‫העתיד‬ ‫למשתנה‬ ‫המוכל‬ ‫האובייקט‬ ‫של‬ ‫הרפרנס‬ ‫טיפוס‬ ‫בין‬ ‫התאמה‬ ‫ויש‬ ‫במידה‬ ‫רק‬ ‫אפשרי‬ ‫ההיפך‬ ‫המרת‬casting‫את‬ ‫שמממשת‬ ‫מחלקה‬ ‫מסוג‬ ‫משתנה‬ ‫בתוך‬ ‫ממשק‬ ‫מסוג‬ ‫לאובייקט‬ ‫רפרנס‬ ‫להציב‬ ‫נרצה‬ ‫אם‬ ,‫כלומר‬ ,‫מתאימה‬ ‫חייבים‬ ‫נהיה‬ ,‫הממשק‬‫שהמשתנה‬ ‫ובלבד‬ ‫המממשת‬ ‫המחלקה‬ ‫לסוג‬ ‫ממשק‬ ‫מסוג‬ ‫האובייקט‬ ‫של‬ ‫הרפרנס‬ ‫של‬ ‫המרה‬ ‫לבצע‬ ‫לגבי‬ ‫וכמובן‬ ‫מורישה‬ ‫ממחלקה‬ ‫שיורשת‬ ‫מחלקה‬ ‫לגבי‬ ‫כנ"ל‬ .‫מממשת‬ ‫מחלקה‬ ‫מסוג‬ ‫לאובייקט‬ ‫ברפרנס‬ ‫מחזיר‬ ‫ממשק‬ ‫מסוג‬ .‫אליו‬ ‫הרפרנס‬ ‫את‬ ‫רק‬ ‫אלא‬ ,‫האובייקט‬ ‫את‬ ‫משנה‬ ‫לא‬ ‫כמובן‬ ‫ההמרה‬ .‫המחלקה‬ ‫מאותה‬ ‫טיפוס‬ ‫ל‬ ‫ניתן‬‫השמורה‬ ‫המילה‬ ‫באמצעות‬ ‫זו‬ ‫התאמה‬ ‫בדוק‬instanceof.
  • 4. :‫נסביר‬ ‫השמורה‬ ‫במילה‬ ‫להשתמש‬ ‫ניתן‬ ,‫מסוים‬ ‫ממשק‬ ‫שמיישמת‬ ‫ממחלקה‬ ‫נוצר‬ ‫אובייקט‬ ‫אם‬ ‫לדעת‬ ‫ע"מ‬instanceof:‫הבא‬ ‫באופן‬ if(objectRef instanceof InterfaceName) ==true if it is ==false if it's not ‫מרגע‬‫באופן‬ ‫זאת‬ ‫נעשה‬ .‫מחלקות‬ ‫של‬ ‫תכונות‬ ‫לסימון‬ "‫סימון‬ ‫"ממשק‬ ‫יצירת‬ ‫על‬ ‫לדבר‬ ‫גם‬ ‫נכון‬ ,‫בפנינו‬ ‫פרושה‬ ‫זו‬ ‫שאינדיקציה‬ :‫הבא‬ interface CanDoOperation { public abstract doOperation(); } :‫בפנינו‬ ‫הניצבות‬ ‫אפשרויות‬ ‫שתי‬ ‫נציין‬ ,‫כך‬ ‫ומתוך‬ ‫ב‬ ‫להשתמש‬ ‫נוכל‬-instanceof‫באוביי‬ ‫לטפל‬ ‫ע"מ‬‫מסוימת‬ ‫בדרך‬ ‫מסוימים‬ ‫קטים‬ ‫כלשהי‬ ‫תכונה‬ ‫בעלת‬ ‫היא‬ ‫שמחלקה‬ ‫לסמן‬ ‫יהיה‬ ‫תפקידו‬ ‫שכל‬ ‫ריק‬ ‫ממשק‬ ‫להגדיר‬ ‫נוכל‬ ‫בהם‬ ‫למקרים‬ ‫הולם‬ ‫טיפול‬ ‫לתת‬ ,‫כלומר‬ ,‫ריצה‬ ‫בזמן‬ ‫חריגים‬ ‫של‬ ‫זריקה‬ ‫למנוע‬ ‫ע"מ‬ ‫זה‬ ‫במידע‬ ‫להשתמש‬ ‫נוכל‬instanceof ‫אז‬ ‫(שהרי‬ ‫שקר‬ ‫ערך‬ ‫יחזיר‬casting‫ערך‬ ‫יחזיר‬ ‫בהם‬ ‫למקרים‬ ‫הולם‬ ‫טיפול‬ ‫ולתת‬ )‫למשל‬ ‫חוקי‬ ‫יהיה‬ ‫לא‬true‫את‬ ‫לבצע‬ ‫(ניתן‬ .)‫ההמרה‬