解释一下Java中的字段隐藏吗?
每当您继承超类时,都会在子类上创建超类成员的副本,并且您可以使用其对象访问超类成员。
如果超类和子类具有相同名称的实例变量,则使用子类对象对其进行访问时,子类字段将隐藏超类的字段,而与类型无关。这种机制称为字段隐藏。
但是,由于不建议这样做,因为它会使代码变得复杂,因此不建议使用字段隐藏。
示例
在下面的示例中,我们有两个类Super和Sub扩展了另一个。它们都有两个名称相同的字段(名称和年龄)。
当我们使用Sub对象打印这些字段的值时。将打印子类的值。
class Super{
String name = "Krishna";
int age = 25;
}
class Sub extends Super {
String name = "Vishnu";
int age = 22;
public void display(){
Sub obj = new Sub();
System.out.println("Name: "+obj.name);
System.out.println("age: "+obj.age);
}
}
public class FieldHiding{
public static void main(String args[]){
new Sub().display();
}
}输出结果
Name: Vishnu age: 22
不过,如果您需要访问超类的字段,则需要将super关键字用作-
示例
class Super{
String name = "Krishna";
int age = 25;
}
class Sub extends Super {
String name = "Vishnu";
int age = 22;
public void display(){
Sub obj = new Sub();
System.out.println("Name: "+obj.name);
System.out.println("age: "+obj.age);
System.out.println("Name: "+super.name);
System.out.println("age: "+super.age);
}
}
public class FieldHiding{
public static void main(String args[]){
new Sub().display();
}
}输出结果
Name: Vishnu age: 22 Name: Krishna age: 25
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下