¿Cómo llama JAVA a la variable miembro en la clase principal con el mismo nombre que la clase secundaria?
[Ejemplo simple]
Animal padre
public class animal {
public static int age =1;
public String name="alasijia";
public void eat() {
System.out.println("动物具有吃东西的能力!");
}}
Perro de subclase
public class dog extends animal {
int age =10;
}
principal
public class hei {
public static void main(String[] args) {
dog i = new dog();
i.eat();
System.out.println("age="+dog.age);
}
}
Resultado
Porque solo un formulario que 静态变量
se puede usar directamente类名称.成员变量
Ejemplo 1 (¡se informará del error!) Cuando el nombre es el mismo, la clase padre no puede ser llamada por el nombre de la clase.
Diferencia: existe antes de la variable de miembro de edad de la clase principal static
, y la clase secundaria tiene la variable de miembro de edad. La función principal se (类名称)dog.(成员变量)age
llama en la forma de
la clase de padre estática edad = 1; subclase edad = 10;
resultado: error: java : no se puede hacer referencia desde un contexto estático Se puede usar la variable no estática age
(类名称)animal.(成员变量)age
Ejemplo 2
Diferencia: hay antes de la variable de miembro de edad de la clase principal static
, y la clase secundaria tiene la variable de miembro de edad. La función principal 对象.成员变量
llama a la
clase principal estática edad = 1; la clase secundaria edad = 10; el
resultado: edad = 10 / / Cuando utilice el objeto, primero visite la subcategoría, si la hubiera, llévela directamente
Ejemplo 3
Diferencia: existe antes de la variable de miembro de edad de la clase principal, y no hay una variable de miembro de edad en la static
subclase . La función principal llama a la clase de padre estática age = 1; resultado: edad = 1 // Cuando se usa el nombre de la clase , también es posible acceder directamente a la variable estática(类名称)dog.(成员变量)age
(类名称)animal.(成员变量)age
Ejemplo 4
Diferencia: existe antes de la variable de miembro de edad de la clase principal static
, y la clase secundaria no tiene la variable de miembro de edad. La función principal 对象.成员变量
llama a la
clase de padre estática edad = 1 en el formulario ;
resultado: edad = 1 // Cuando se usa un objeto, si la clase secundaria no lo tiene, busque. Encontrado en la clase principal
Ejemplo 5
Diferencia: no hay una variable de miembro de edad en la clase principal static
, y la clase secundaria tiene una variable de miembro de edad. La función principal se 对象.成员变量
llama de la misma manera que la
clase principal age = 1; la clase secundaria age = 10; el
resultado: age = 10 // Cuando utilice el objeto, visite la primera subcategoría, si la hubiera
Ejemplo 6
Diferencia: la clase principal no tiene una variable de miembro de edad antes static
y la clase secundaria no tiene una variable de miembro de edad. La función principal se 对象.成员变量
llama en la forma de
la clase de padre edad = 1; subclase edad = 10;
resultado: edad = 1 // cuando usando objetos, subclase Si no es así, busque, busque en la clase padre
Por ejemplo 1, también hay un método que puede llamar a la edad de la clase principal
Animal q1 = new Dog();
q1.age
El resultado es edad = 1;