温馨提示×

java父类字段隐藏问题

小樊
101
2024-07-20 20:34:04
栏目: 编程语言

在Java中,子类可以隐藏父类中的字段,也就是说子类可以定义与父类相同名称的字段。当子类定义了与父类相同名称的字段时,子类的字段会隐藏父类的字段,也就是说在子类对象中访问该字段时,会优先访问子类的字段而不是父类的字段。

例如,假设有一个父类Animal和一个子类Dog,它们都有一个字段name:

class Animal {
    String name = "Animal";
}

class Dog extends Animal {
    String name = "Dog";
}

当创建一个Dog对象并访问name字段时:

Dog dog = new Dog();
System.out.println(dog.name); // 输出 "Dog"

即使Dog类继承自Animal类,但是由于Dog类定义了与Animal类相同名称的字段name,因此在Dog对象中访问name字段时会优先访问Dog类的字段而不是Animal类的字段。这种现象称为字段隐藏。

需要注意的是,字段隐藏只会影响通过子类对象访问字段的情况,如果通过父类对象访问字段,仍然会访问父类的字段。如果想在子类中访问父类中被隐藏的字段,可以使用super关键字来访问父类的字段。

0