package?imooc;???????//???????????????imooc包中
public?class?HelloWorld?{
????protected?static?int?a=1;//protected不能被異包非子類調(diào)用
}
---------------------------------------------------------------------------
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);
????????/*報(bào)錯(cuò),提示要將HelloWorld類中protected修飾符改為public。如果Hello類中創(chuàng)建了屬于Hello的類變
?????????*量a,那么這里應(yīng)該不會(huì)報(bào)錯(cuò)。但是這里報(bào)錯(cuò)說明Hello類中沒有protected修飾的屬于Hello類的類變量
?????????*a。反而快速修改提示修正HelloWorld類中的修飾符為public,那么我有理由認(rèn)為子類相當(dāng)于一個(gè)中轉(zhuǎn)
?????????*站,并沒有屬于自己的成員。
?????????*/
????}
}這種理解對(duì)不對(duì)?子類與父類是集合中的包含關(guān)系,創(chuàng)建的子類并沒有構(gòu)造新的屬于子類的成員(簡(jiǎn)單的繼承,無override),而是相當(dāng)于將父類中可繼承的成員組合起來,形成的一個(gè)類。通過?? 子類名?? 調(diào)用任何成員,實(shí)際上指向的是父類的成員. 因此通過 子類名 調(diào)用成員,受制于父類中的訪問修飾符。
添加回答
舉報(bào)
0/150
提交
取消