Las variables en Java no siguen el polimorfismo. La anulación solo se aplica a los métodos, pero no a las variables. En Java, si la clase principal y la secundaria tienen una variable con el mismo nombre, la variable de la clase secundaria oculta la variable de la clase principal, incluso si sus tipos son diferentes. Este concepto se conoce como Ocultación de Variables . En el caso de la anulación de métodos , los métodos de anulación reemplazan completamente los métodos heredados, pero en la ocultación de variables, la clase secundaria oculta las variables heredadas en lugar de reemplazarlas, lo que básicamente significa que el objeto de la clase secundaria contiene ambas variables, pero la variable secundaria oculta la variable principal.
Por lo tanto, cuando intentemos acceder a la variable dentro de la clase Child, se accederá desde la clase child. Si intentamos acceder a la variable fuera de la clase principal y secundaria, la variable de instancia se elige del tipo de referencia.
Ejemplo
Java
// Java Program Illustrating Instance variables // Can not be Overridden // Class 1 // Parent class // Helper class class Parent { // Declaring instance variable by name `a` int a = 10; public void print() { System.out.println("inside B superclass"); } } // Class 2 // Child class // Helper class class Child extends Parent { // Hiding Parent class's variable `a` by defining a // variable in child class with same name. int a = 20; // Method defined inside child class public void print() { // Print statement System.out.println("inside C subclass"); } } // Main class public class GFG { // Main driver method public static void main(String[] args) { // Creating a Parent class object // Reference Parent Parent obj = new Child(); // Calling print() method over object created obj.print(); // Printing superclass variable value 10 System.out.println(obj.a); // Creating a Child class object // Reference Child Child obj2 = new Child(); // Printing childclass variable value 20 System.out.println(obj2.a); } }
inside C subclass 10 20
Conclusión:
Las variables en Java no siguen el polimorfismo ni la anulación. Si estamos tratando de acceder a la variable fuera de la clase principal y secundaria, entonces la variable de instancia se elige del tipo de referencia.
Publicación traducida automáticamente
Artículo escrito por dattabikash505 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA