【发布时间】:2020-05-04 08:32:01
【问题描述】:
/*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
}
}
我没有声明变量“名称”它是如何覆盖超类变量的。 请解释变量“名称”在此处的工作原理
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
【问题讨论】:
-
"The hound Doggo is baring" 不会被您显示的代码打印出来。另外,变量覆盖是什么意思?
-
因为你有
Name作为 protected ,所以这个成员被继承了 -
“变量覆盖”不是一件事
标签: java inheritance overriding