עבור לתוכן

protected ב-Java

Featured Replies

פורסם

ממה שהבנתי, כשמגדירים לפונקציה בקרת גישה מסוג protected, זה אומר שאפשר לגשת אליה גם ממחלקות שיורשות אותה (subclasses) בחבילות (packages) אחרות. (הבנתי נכון?)

כתבתי 2 מחלקות ב-2 חבילות שונות כדי לבדוק את זה:

package b;

public class Toast
{
protected int rand()
{
return (int)(Math.random()*100);
}
}

package a;

public class Test extends b.Toast {
static b.Toast x = new b.Toast();
public static void main(String[] args)
{
System.out.println(x.rand());
}
}

אך אני מקבל הודעת שגיאה שאומרת שאין גישה לפונקציה rand, למרות ש-Test היא subclass של Toast... מה אני מפספס פה?

פורסם

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

public class Test extends b.Toast {
public int r() {
return rand();
}
}

פורסם
  • מחבר

אוקיי, נראה לי שהבנתי.. תודה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים