/*package whatever //do not write package name here */
//package inheritance;
import java.util.*;
import java.lang.*;
class Dog{
public static String Name="Miku";
public void bark(){
System.out.println("The Dog is Barking"); //class methods
}
public void run(){
System.out.println("The Dog is runing"); //class methods
}
}
我尚未声明变量“名称”如何覆盖超类变量。 Plaese解释变量“名称”在这里如何工作
class Hound extends Dog{
//Overridden method bark()
public void bark(){
super.bark();
Name="Doggo";
System.out.println("The Hound " +this.Name +" is barking");
System.out.println("The Hound " +super.Name +" is barking");
}
}
public class Test6{
public static void main(String Args[]){
Hound H=new Hound();
H.bark();
}
}
代码的输出为
The Dog is Barking
The Hound Doggo is barking
The hound Doggo is barking
答案 0 :(得分:0)
它没有被覆盖。它是由子类Hound继承的。
根据定义,“静态方法和变量是从超类继承到子类的,只要子类可以访问该方法。我的意思是,如果子类(子类)位于不同的包中,只要该方法在超类中声明为公共方法或受保护方法,它将在子类中继承。”
因此您的猎犬类可以访问变量名,并且不是最终变量,因此可以通过继承类猎犬的方法更改其值。
答案 1 :(得分:0)
这不是最重要的。
由于它是公开而不是最终,因此您可以对其进行修改。
由于它是静态,因此实际上您是在相同内存空间中更改父级值。
有关更多详细信息,请遵循此link。