欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java 子類和父類定義同名變量

劉柏宏2年前10瀏覽0評論

在Java中,當子類和父類定義了同名變量時,就會產生變量隱藏的問題。子類會隱藏父類的同名變量,這意味著當子類修改了變量的值時,父類的同名變量的值不會跟著改變。

public class Parent {
protected int num = 10;
}
public class Child extends Parent {
private int num = 5;
public void printNum() {
System.out.println(num); // 輸出子類定義的num,即5
System.out.println(super.num); // 輸出父類定義的num,即10
}
}

在上面的代碼中,子類Child定義了一個私有變量num,它和父類Parent中的num同名。在Child類的printNum方法中,輸出了Child類中定義的num和Parent類中定義的num。由于子類會隱藏父類中的同名變量,所以輸出的結果分別為5和10。

如果想在子類中訪問父類中被隱藏的同名變量,可以使用super關鍵字來調用父類中的變量。

public class Child extends Parent {
private int num = 5;
public void printNum() {
System.out.println(num); // 輸出子類定義的num,即5
System.out.println(super.num); // 輸出父類定義的num,即10
}
public void setNum(int num) {
this.num = num;
super.num = num; // 修改父類中的同名變量
}
}

在上面的代碼中,Child類中新增了一個修改同名變量的方法setNum。當調用這個方法修改變量值時,需要使用this關鍵字來訪問Child類中的同名變量,并使用super關鍵字來訪問父類中的同名變量。