logo

סופר מילת מפתח בג'אווה

ה סוּפֶּר מילת מפתח ב-Java היא משתנה התייחסות המשמש להפניה לאובייקט מחלקה אב מיידי.

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

שימוש ב-Java Super Keyword

  1. ניתן להשתמש ב-super כדי להפנות למשתנה מופע של מחלקת האב המיידי.
  2. ניתן להשתמש ב-super כדי להפעיל את שיטת מחלקת האב המיידית.
  3. super() יכול לשמש כדי להפעיל את בנאי מחלקות האב המיידי.
שימוש במילת מפתח Java Super

1) super משמש להפניה למשתנה מופע של מחלקת האב המיידי.

אנו יכולים להשתמש במילת מפתח סופר כדי לגשת לאיבר הנתונים או לשדה של כיתת האב. הוא משמש אם כיתת אב וכיתת ילד יש אותם שדות.

התנתק מחשבון גוגל באנדרואיד
 class Animal{ String color='white'; } class Dog extends Animal{ String color='black'; void printColor(){ System.out.println(color);//prints color of Dog class System.out.println(super.color);//prints color of Animal class } } class TestSuper1{ public static void main(String args[]){ Dog d=new Dog(); d.printColor(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 black white 

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

2) ניתן להשתמש בסופר כדי להפעיל את שיטת מחלקת האב

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

 class Animal{ void eat(){System.out.println('eating...');} } class Dog extends Animal{ void eat(){System.out.println('eating bread...');} void bark(){System.out.println('barking...');} void work(){ super.eat(); bark(); } } class TestSuper2{ public static void main(String args[]){ Dog d=new Dog(); d.work(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 eating... barking... 

בדוגמה לעיל, Animal וכלב, לשתי המחלקות יש שיטת eat() אם אנו קוראים לשיטת eat() ממחלקת Dog, היא תקרא לשיטת eat() של מחלקה Dog כברירת מחדל, כי ניתנת עדיפות ל-local.

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

3) סופר משמש להפעלת בנאי מחלקות אב.

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

 class Animal{ Animal(){System.out.println('animal is created');} } class Dog extends Animal{ Dog(){ super(); System.out.println('dog is created'); } } class TestSuper3{ public static void main(String args[]){ Dog d=new Dog(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 animal is created dog is created 

הערה: super() מתווסף בכל בנאי מחלקה באופן אוטומטי על ידי מהדר אם אין super() או this().

Java זה מעולה

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

דוגמה נוספת למילת מפתח סופר שבה super() מסופק על ידי המהדר באופן מרומז.

 class Animal{ Animal(){System.out.println('animal is created');} } class Dog extends Animal{ Dog(){ System.out.println('dog is created'); } } class TestSuper4{ public static void main(String args[]){ Dog d=new Dog(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 animal is created dog is created 

דוגמה מעולה: שימוש אמיתי

בואו נראה את השימוש האמיתי במילת מפתח העל. כאן, מחלקה Emp יורשת את המחלקה Person כך שכל המאפיינים של Person יעברו בירושה ל-Emp כברירת מחדל. כדי לאתחל את כל המאפיין, אנו משתמשים בבנאי מחלקות אב מכיתה ילד. באופן כזה, אנו עושים שימוש חוזר בבנאי מחלקות האב.

 class Person{ int id; String name; Person(int id,String name){ this.id=id; this.name=name; } } class Emp extends Person{ float salary; Emp(int id,String name,float salary){ super(id,name);//reusing parent constructor this.salary=salary; } void display(){System.out.println(id+' '+name+' '+salary);} } class TestSuper5{ public static void main(String[] args){ Emp e1=new Emp(1,'ankit',45000f); e1.display(); }} 
בדוק את זה עכשיו

תְפוּקָה:

 1 ankit 45000