ירושה

שפת Java – הפעם נלמד inheritance.

הגדרה של מחלקה בשם Mainclass שממנה תהיה ירושה

class Mainclass {
int x;

Mainclass (int x) {
this.x= x; 
}

public void getX() {
System.out.println("X in super class: " +this.x);
}

}

הסבר:

במחלקה Mainclass הגרנו פרמטר X מסוג Integer
וגם בנאי אשר מקבל פרמטר ומאתחל X בערך מסוג Integer

class Mainclass 
{ 
  int x; 

  Mainclass (int x) 
  { 
    this.x= x; 
  } 
}

כזכור בעזרת this אנחנו מפנים אל פרמטר X אשר הוגדר במחלקה
ומבדילים מפרמטר X שאותו מקבלים בבנאי!

בסוף יש מטודה בשם getX, אשר מדפיסה את הערך X

 public void getX() 
 { 
   System.out.println("X in super class: " +this.x);
 }

דוגמה:

קריאה למטודה ממחלקה ראשית שממנה יש ירושה

public class SubMainclass extends Mainclass {


SubMainclass(int x) {
super(x);//17

public static void main(String args[]) {
SubMainclass obj = new SubMainclass(17);//X in super class: 17
obj.getX();
}

}

הסבר:

מחלקה בשם SubMainclass מקבלת יורשה ממחלקה  Mainclass

public class SubMainclass extends Mainclass {

SubMainclass(int x) {
super(x);//17
}

}

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

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

לכן במחלקה SubMainclass יש כל פרמטרים ומטודות של המחלקה ראשית Mainclass

כזכור לכל מחלקה חייב להיות בנאי ואם זה מדובר במחלקה יורשת אז בנאי חייב להחיל את הבנאי ממחלקה ראשית.

במקרה שלנו למחלקה ראשית Mainclass  יש בנאי

Mainclass (int x) 
{ 
  this.x= x; 
}

לכן במחלקה יורשת SubMainclass יהיה בנאי:

* בעזרת super (מילה שמורה) אנחנו מאתחלים את הבנאי ממחלקה ראשית Mainclass

super(x)

לסיכום זה הבנאי במחלקה היורשת SubMainclass

SubMainclass(int x) 
{
 super(x);//17 
}

עכשיו בו נתמקד במשהו שכתוב בכחול

public class SubMainclass extends Mainclass {


SubMainclass(int x) {
super(x);//17

public static void main(String args[]) {
SubMainclass obj = new SubMainclass(17);//X in super class: 17
obj.getX();
}

}

כאן יש הגדרה של הקוד להרצת תוכנה ב-Java,

public static void main(String args[]) {
SubMainclass obj = new SubMainclass(17);//X in super class: 17
obj.getX();
}

אשר מכיל הגדרה של אובייקט ממחלקה ראשית

SubMainclass obj = new SubMainclass(17);//X in super class: 17

ובעזרה מטודה getX מדפיסים את הביטוי

public void getX() 
{ 
  System.out.println("X in super class: " +this.x);
}

שזה:

"X in super class: 17
דילוג לתוכן