今天看了一下書,發(fā)現(xiàn)自己對面向?qū)ο笥行┲R點不熟悉,根據(jù)自己情況總結(jié)一下。</br>
訪問權(quán)限如下圖,總結(jié)來說就是private只能訪問類中成員,default/friendly能訪問同一package中成員,protected還保護子類的訪問,public權(quán)限最大。
類的權(quán)限只有2種:public和默認。如果在一個源程序文件中,聲明了若干類的話,只能有一個類的權(quán)限關(guān)鍵字是public。這個類的名字應(yīng)該和程序文件同名,main方法也應(yīng)該在這個類中。
</br>
構(gòu)造方法中,要注意沒有返回值,名字前void也不要加。Java中提供默認的構(gòu)造方法,但是有了自己創(chuàng)建的構(gòu)造方法后,Java就不給出默認的構(gòu)造方法,需要在類中自己加一個無參數(shù)構(gòu)造方法。
finalize用法:
<修飾符> void finalize() {},沒有參數(shù)沒有返回值,一個類中只能定義一個finalize()方法,此方法的發(fā)生在對象銷毀之前。
子類的成員變量與超類的同名時,超類成員變量被隱藏。
不能被繼承的類成為最終類,用final聲明。final用于成員方法時,此方法不會在子類中被覆蓋(即子類中不能有和此方法同名的方法)。
含有abstract抽象方法的類稱為抽象類,可含非抽象方法,在子類中必須實現(xiàn)超類中所有抽象方法。
面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài)。多態(tài)性分為重載(overloading)和重寫/覆蓋(overwrite)。重載是指方法名相同,方法參數(shù)的類型或個數(shù)不同。僅有返回類型不一樣不是正確的方法重載。重寫是指子類和超類中有同名且參數(shù)相同的方法時,子類中方法覆蓋超類中方法。
Java中一個類只能有一個超類(單重繼承),但可以有多個接口。接口只由常量和抽象方法組成,變量隱含為final static,必須賦初值。