Java 中什麼叫例項變數隱藏?
每次繼承一個超類時,超類的成員的副本都會在該子類中建立,你可以利用其物件來訪問超類成員。
如果超類和子類具有同名的例項變數,使用子類物件對其進行訪問時,子類的例項變數會隱藏超類的例項變數,與型別無關。此機制稱為欄位隱藏或例項變數隱藏。
但是,由於這會令程式碼變得複雜,不建議使用欄位隱藏。
示例
在以下示例中,我們有兩個類,其中一個類 (Super) 繼承另一個類 (Sub)。它們都具有兩個同名欄位 (name 和 age)。
使用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP