logo

Razredi staršev in otrok z istim članom podatkov v Javi

V C ++ imamo vse metode članov razreda kot ne-virtualne. Da bi tako naredili, moramo uporabljati ključno besedo kot predpono, znano kot virtualno . Ker v Javi imamo privzeto vse metode članov razreda kot virtualne. Da bi bili ne-virtualni, uporabljamo ključno besedo finale .

Referenčne spremenljivke v Javi so v osnovi spremenljivke, ki imajo naslov predmeta v šestnajstični vrsti, ki se kasneje pretvori v binarni sistem, ki je v bistvu naslov predmeta, ki ga je treba shraniti v pomnilnik gomila.



Referenčne spremenljivke, ki se razlikujejo od primitivnih vrst, saj njihove velikosti ni mogoče izračunati. V Javi je referenčna spremenljivka nadrejenega razreda sposobna držati referenco objekta in referenco otroškega predmeta. Poglejmo o članih, ki niso metodi, s pomočjo primera.

Primer:

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

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

Izhodna razlaga: Če matična referenčna spremenljivka drži referenco otroškega razreda in imamo spremenljivko "Vrednost" tako v razredu nadrejenega in otroškega razreda, se bo nanašala na spremenljivko "vrednost nadrejenega razreda", ne glede na to, ali drži referenco predmeta razreda otrok. Referenca, ki drži referenco predmeta otroškega razreda, ne bo mogla dostopati do članov (funkcij ali spremenljivk) otroškega razreda. To je zato, ker lahko matična referenčna spremenljivka dostopa samo do polj, ki so v nadrejenem razredu. Tako vrsta referenčne spremenljivke odloča, katero različico "vrednost" bo imenovana in ne vrsta predmeta, ki je instanciran. To je zato, ker prevajalnik uporablja poseben mehanizem polimorfizma, ki teče samo za metode. (Tam vrsta predmeta, ki je instanciran, odloči, katero različico metode naj se imenuje).



Opomba: Omogoča je dostop do članov podatkov otrok, ki uporabljajo starševski kazalec s tipkanjem.