¿Cómo llama JAVA a la variable miembro en la clase principal con el mismo nombre que la clase secundaria?

¿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.(成员变量)agellama 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 staticsubclase . 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 staticy 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;

Supongo que te gusta

Origin blog.csdn.net/TOPic666/article/details/105366946
Recomendado
Clasificación