package?imooc;???????//???????????????imooc包中
public?class?HelloWorld?{
????protected?static?int?a=1;//protected不能被異包非子類調用
}
---------------------------------------------------------------------------
package?imooc.second;//????????imooc.second包中
import?imooc.HelloWorld;
public?class?Hello?extends?HelloWorld?{
}
-------------------------------------------------------------------------
package?imooc.second;//????????imooc.second包中???????????
public?class?Hello2?{
????public?static?void?main(String[]?args)?{
????????System.out.println(Hello.a);
????????/*報錯,提示要將HelloWorld類中protected修飾符改為public。如果Hello類中創建了屬于Hello的類變
?????????*量a,那么這里應該不會報錯。但是這里報錯說明Hello類中沒有protected修飾的屬于Hello類的類變量
?????????*a。反而快速修改提示修正HelloWorld類中的修飾符為public,那么我有理由認為子類相當于一個中轉
?????????*站,并沒有屬于自己的成員。
?????????*/
????}
}這種理解對不對?子類與父類是集合中的包含關系,創建的子類并沒有構造新的屬于子類的成員(簡單的繼承,無override),而是相當于將父類中可繼承的成員組合起來,形成的一個類。通過?? 子類名?? 調用任何成員,實際上指向的是父類的成員. 因此通過 子類名 調用成員,受制于父類中的訪問修飾符。
添加回答
舉報
0/150
提交
取消