為什麼這篇java繼承鄉民發文收入到精華區:因為在java繼承這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者pluseus (回憶真美麗)看板java標題[問題] 一個簡單的變數繼承問題時間Fri Apr...
大家好,不好意思,我想請問一下一個簡單的變數繼承問題
我想要做一個測試確認
就是父類別原本有的類別變數,假如是var1
子類別繼承後,子類別的物件obj內,應該有var1、super.var1兩塊獨立的變數吧?
但是為什麼我做了以下測試
我發現我改了obj內的super.var1,obj內的var也會一起改變?
難道是var1、super.var1其實是同一個變數嗎?
萬分感謝!
source code:
import java.lang.*;
public class class_130412
{
public static void main(String args[])
{
CB obj = new CB();
obj.show();
}
}
class CA
{
public int var1;
public CA()
{
System.out.println("父類別建構子建構中");
var1=10;
}
}
class CB extends CA // 子類別CB繼承自類別CA
{
public CB()
{
System.out.println("子類別建構子建構中");
var1=20;
super.var1=30;
}
public void show()
{
System.out.println("var1=" + var1);
System.out.println("super.var1=" + super.var1);
}
}
結果:
父類別建構子建構中
子類別建構子建構中
var1=30
super.var1=30
問題1:
為什麼super.var1=30
會一起動到var1的數值?
問題2:
如果我把super.var1=30註解掉
結果是
父類別建構子建構中
子類別建構子建構中
var1=20
super.var1=20
super.var1不應該是要維持同樣是10嗎?
謝謝指點!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.113.229
※ 編輯: pluseus 來自: 140.109.113.229 (04/12 16:58)