Re: [問題] private繼承問題

看板java作者 (自立而後立人)時間11年前 (2014/07/01 17:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/17 (看更多)
※ 引述《meya (落寞之心)》之銘言: : class A{ : private int a1=1; : } : public class test extends A{ : public static void main(String[] args){ : test t=new test(); : System.out.println(t.a1); : } : } : 子類別無法直接存取父類別的private a1,但 : 究竟子類別有無繼承父類別的private a1? : 應該用下列哪種理解才正確? : (A)子類別內的a1繼承自父類別的a1,只是父類別用private修飾a1,讓其他類別無法直接 : 存取父類別內的a1 : (B)使用private修飾過的a1,無法被子類別繼承 : 懇請回答謝謝 先講原文的程式碼看下來標準答案是,compile error。 t.a1 is not visible http://screencast.com/t/VkD1pmc2dt9i 繼承有一些不同的解釋方法, 一般來講,我的想法會偏好解釋成繼承關係下, 父類別其實是一種實體、子類別也是一個實體, 所以建構子類別的時候,父類別也需要被建構一樣。 從狀態面來講,假設有 public class Parent{ private int a1 = 1; } public class Child extends Parent{ private int a1 = 2; } 今天 new Child() 的話,兩個 a1 都是同時存在的 只是在這個例子裡面 Parent 的 a1 完全沒有意義 不會被異動、無法被存取而已。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.246.45 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1404207649.A.D7D.html
文章代碼(AID): #1Jie8Xrz (java)
討論串 (同標題文章)
文章代碼(AID): #1Jie8Xrz (java)