Re: [問題] private繼承問題

作者: TonyQ (自立而後立人。)   2014-07-01 17:40:47
※ 引述《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 完全沒有意義
不會被異動、無法被存取而已。

Links booklink

Contact Us: admin [ a t ] ucptt.com