logo

שיעורי הורים וילדים בעלי אותו חבר נתונים ב- Java

ב- C ++ יש לנו את כל שיטות החברות בכיתה כלא וירטואליות. על מנת לעשות כדי שנצטרך להשתמש במילת מפתח כקידומת המכונה וירטואלי ו ואילו ב- Java יש לנו את כל שיטות החברים בכיתה כברירת מחדל וירטואלית. על מנת להפוך אותם ללא וירטואליים אנו משתמשים במילת המפתח סוֹפִי ו

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



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

דוּגמָה:

Java
// Java Program to Demonstrate that Non-method Members // are Accessed according to Reference Type // (Unlike methods that are accessed according // to the referred object) // Class 1 // Super class class Parent {  int value = 1000;  // Constructor of super class  Parent()  {  // Print statement  System.out.println('Parent Constructor');  } } // Class 2 // Sub class class Child extends Parent {  int value = 10;  // Constructor of sub class  Child()  {  // Print statement  System.out.println('Child Constructor');  } } // Class 3 // Main class class GFG {  // Main driver method  public static void main(String[] args)  {  // Creating an object of sub class inside main()  // method  Child obj = new Child();  // Printing the reference of child type  System.out.println('Reference of Child Type :'  + obj.value);  // Note that doing 'Parent par = new Child()'  // would produce same result  Parent par = obj;  // Par holding obj will access the value  // variable of parent class  // Printing the reference of parent type  System.out.println('Reference of Parent Type : '  + par.value);  } } 

תְפוּקָה
Parent Constructor Child Constructor Reference of Child Type :10 Reference of Parent Type : 1000

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



פֶּתֶק: זה אפשרי לגשת לחברי נתוני ילדים באמצעות מצביע ההורה באמצעות הקלדה.