Vecāku un bērnu nodarbības, kurām ir vienāds datu loceklis Java

C ++ mums ir visas klases dalībnieku metodes kā virtuālas. Lai to izgatavotu, mums ir jāizmanto atslēgvārds kā prefikss, kas pazīstams kā virtuāls Apvidū Tā kā Java pēc noklusējuma mums ir visas klases dalībnieku metodes. Lai padarītu tos nevirtuālus, mēs izmantojam atslēgvārdu galīgais Apvidū

Atsauces mainīgie Java būtībā ir mainīgie lielumi, kuriem ir objekta adrese heksadecimālā tipā, kas vēlāk tiek pārveidots par bināro sistēmu, kas būtībā ir objekta adrese, kas jāuzglabā kaudzes atmiņā.

Atsauces mainīgie, kas atšķiras no primitīvajiem tipiem, jo ​​to lielumu nevar aprēķināt. Java vecāku klases atsauces mainīgais ir spējīgs saglabāt savu objekta atsauci, kā arī bērna objekta atsauci. Par piemēra palīdzību redzēsim par biedriem, kas nav metodi.

Piemērs:

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  );      }   }   

Izvade
Parent Constructor Child Constructor Reference of Child Type :10 Reference of Parent Type : 1000 

Izejas skaidrojums: Ja vecāku atsauces mainīgais tur Bērnu klases atsauci, un mums ir mainīgais “vērtība” gan vecāku, gan bērnu klasē, tas attiecas uz vecāku klases mainīgo “vērtība”, neatkarīgi no tā, vai tajā ir bērnu klases objekta atsauce. Atsauce, kurā ir bērnu klases objekta atsauce, nevarēs piekļūt bērnu klases dalībniekiem (funkcijām vai mainīgajiem). Tas notiek tāpēc, ka vecāku atsauces mainīgais var piekļūt tikai laukiem, kas atrodas vecāku klasē. Tādējādi atsauces mainīgā tips izlemj, kuru “vērtības” versiju sauktu, nevis to objekta tips. Tas ir tāpēc, ka kompilators izmanto īpašu izpildes laika polimorfisma mehānismu tikai metodēm. (Tur, kas tiek uzaicināts, objekta tips nolemj, kuru metodes versiju saukt).

Piezīme: Ir iespējams piekļūt bērnu datu biedriem, izmantojot vecāku rādītāju ar tipogrāfiju.


Jums Varētu Patikt