在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關鍵字來訪問父類的字段。