java繼承的修飾符


Java繼承規則中的訪問控制

方法的繼承
Java中子類繼承父類方法時,有如下規則:

父類或超類中的public方法,在子類中也必須是public。
父類中的protected方法,在子類中必須是protected或public,不能為private。
父類中private的方法不能被繼承。

屬性的繼承
另外,對於子類繼承父類屬性(成員變量)需注意:

從父類繼承的成員變量,其訪問控制符仍然相同。
子類定義與父類同名的成員變量,並沒有覆蓋父類的成員變量,而是兩個成員變量共存;默認情況下,父類的成員變量是被隱藏的,如果你非要調用父類的成員變量可使用super關鍵字。
靜態屬性方法的繼承
而對於靜態屬性(成員變量)與靜態方法:

靜態屬性和靜態方法可以被繼承,但是不是被重寫(override)而是被隱藏。這是因為靜態方法和屬性是屬於類的,調用的時候直接通過類名.方法名完成對,不需要繼承機制及可以調用。
靜態屬性、靜態方法和非靜態的屬性都可以被繼承和隱藏而不能被重寫,因此不能實現多態,不能實現父類的引用可以指向不同子類的對象;非靜態方法可以被繼承和重寫,因此可以實現多態。

C++繼承規則中的訪問控制

愛咋寫咋寫

#include <iostream>

using namespace std;

class father{
public:
    int father ;

};
class son: public father{
    public:
   int  father = 7;
};
int main()
{

    son so ;
    father *fa  = new father(so);
    cout << fa->father<< endl;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM