類有兩種重要的成員:成員變量和方法。子類的成員中有一部分是子類自己聲明定義的,另一部分是從它的父類繼承的。子類繼承父類的成員變量作為自己的一個(gè)成員變量,就好像該成員變量是在子類中直接聲明一樣,可以被子類中自己定義的任何實(shí)例方法操作。子類繼承父類的方法作為自己的一個(gè)方法,就好像該方法是在子類中直接定義一樣,可以被子類中自己定義的任何實(shí)例方法調(diào)用。
子類和父類在同一包中的繼承性:
如果子類和父類在同一個(gè)包中,那么子類自然地繼承了其父類中不是private的成員變量作為自己的成員變量,并且也自然地繼承了父類中不是private的方法作為自己的方法,繼承的成員變量或方法的訪問權(quán)限保持不變。
子類和父類不在同一包中的繼承性:
如果子類和父類不在同一個(gè)包中,父類中的private和友好訪問權(quán)限的成員變量不會(huì)被子類繼承,即子類只繼承父類中的protected和public訪問權(quán)限的成員變量和方法作為子類的成員變量和方法。
關(guān)于protected的進(jìn)一步說明:
一個(gè)類A中的protected成員變量和方法可以被它的子孫類繼承,比如B是A的子類,C是B的子類,D又是C的子類,那么B、C和D類都繼承了A類的protected成員變量和方法。
如果用D類在D本身中創(chuàng)建了一個(gè)對(duì)象,那么該對(duì)象總是可以通過“.”運(yùn)算符訪問繼承的或自己定義的protected變量和protected方法,但是,如果在另外一個(gè)類中,比如在Other類中用D類創(chuàng)建了一個(gè)對(duì)象object,該對(duì)象通過“.”運(yùn)算符訪問protected變量和protected方法的權(quán)限如下所述:
1. 對(duì)于子類D自己聲明的protected成員變量和方法,只要Other類和D類在同一個(gè)包中,object對(duì)象就可以訪問這些protected成員變量和方法。
2. 對(duì)于子類D從父類繼承的protected成員變量或protected方法,需要追溯到這些protected成員變量或方法所在的“祖先”類,比如可能是A類,只要Other類和A類在同一個(gè)包中,object對(duì)象就能訪問繼承的protected變量和protected方法。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程