A szülői és gyermekosztályok ugyanazon adattaggal rendelkeznek a Java -ban

A C ++ -ban minden osztálytag-módszer nem virtual. Hogy elkészítsük, így egy kulcsszót kell használnunk az úgynevezett előtagként virtuális - Míg a Java -ban alapértelmezés szerint minden osztálytag -módszert virtuálisként. Annak érdekében, hogy nem virtualissá tegyük őket, a kulcsszót használjuk végső -

A Java referenciaváltozói alapvetően olyan változók, amelyek az objektum címét hexadecimális típusban tartják, amelyet később olyan bináris rendszerre konvertálnak, amely alapvetően a halommemórián tárolandó objektum címe.

A referenciaváltozók, amelyek különböznek a primitív típusoktól, mivel méretük nem számítható ki. A Java -ban a szülői osztály referenciaváltozója képes tartani az objektum referenciáját, valamint a gyermekobjektum referenciáját. Lássuk a nem módszertagokról egy példának segítségével.

Példa:

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

Kibocsátás
Parent Constructor Child Constructor Reference of Child Type :10 Reference of Parent Type : 1000 

Kimeneti magyarázat: Ha egy szülői referenciaváltozó tartja a gyermekosztály referenciáját, és mind a szülő, mind a gyermekosztályban mind a szülő, mind a gyermekosztályban az „érték” változó van, akkor a szülői osztály „érték” változóra utal -e, függetlenül attól, hogy tartja -e a gyermekosztály -objektum referenciáját. A gyermekosztály -objektum referencia -referencia -referencia nem fogja elérni a gyermekosztály tagjait (funkcióit vagy változókat). Ennek oka az, hogy a szülő referenciaváltozó csak a szülő osztályban található mezőkhöz férhet hozzá. Így a referencia -változó típusa dönti el, hogy az „érték” melyik verzióját hívják, és nem az objektum típusú instantálását. Ennek oka az, hogy a fordító csak a módszerekhez használ egy speciális futási idejű polimorfizmus mechanizmust. (Ott az objektum típusának instantiált típusa eldönti, hogy a módszer melyik verzióját kell hívni).

Jegyzet: Lehetővé teszi a gyermekadatok tagjainak hozzáférését a szülői mutató használatával a typeCasting segítségével.