您好我只是想undertand以下行爲.. 我已定義的相同方法 - 在基GG()和派生類具有不同訪問多態性 - 在派生類改變訪問指示符
Class Base
{
// some thing
**private** Integer gg(){
//return something
}
}
Class Derived{
// something
**public** Integer gg(){
//return something
}
}
在我初始化變量時的主要方法
Base d = new Derived()
並試圖調用d.gg()它說Base.gg()是私有的。修改訪問說明符是否會使方法調用返回到Base類方法?當我將基類中的gg()的訪問指定符更改爲public時,它就像多態性應該那樣調用Derived類中的方法。
從我讀到的關於多態性的文章中,可以確定訪問說明符在派生類中的限制性較小,這在這裏就是這種情況。
我的文章中的對象d存儲對派生類的引用嗎?變量類型是如何決定一個方法的訪問權限,而不是它所指的實際對象? – dasman 2011-02-06 19:47:44
好吧,我現在明白了。謝謝。 – dasman 2011-02-06 19:49:39