A
抽象類
什么是抽象類:如果在一個類的前面加上關(guān)鍵字abstract赖钞,這個類就是抽象類澎嚣。
抽象類無法直接實例化经磅;抽象類里可以存在抽象方法花鹅,但也可以不存在抽象方法斥季;
抽象方法的特征:由abstract修飾的方法為抽象方法灰羽,抽象方法只有方法的定義,沒有方法體實現(xiàn)惭蟋,用一個分號結(jié)尾。
如果一個類繼承了抽象類药磺,必須重寫其抽象方法(除非該聲明為抽象類)告组。
abstract 和final這些關(guān)鍵字不可以同時修飾一個類,因為final使得類不能被繼承癌佩,而abstract修飾的類如果不被繼承就沒有任何意義惹谐。
抽象類有什么意義
--為其子類提供一個公共的類型持偏;
--封裝子類中的重復(fù)內(nèi)容(成員變量和方法);
--定義了抽象方法氨肌,子類雖然有不同的實現(xiàn)鸿秆,但該方法定義是一致的。
接口
接口可以看成一種特殊的抽象類怎囚,即只包含抽象方法的抽象類卿叽。
interface是創(chuàng)建接口的關(guān)鍵字;
抽象類和抽象類之間可以繼承(單繼承)恳守;抽象類和接口之間只能實現(xiàn)(implements)考婴;接口和接口之間只能繼承(可以多繼承)。
普通的類與抽象類之間用繼承(單繼承)催烘,普通的類與接口之間用實現(xiàn)(多實現(xiàn))沥阱。
多態(tài)(意義)
一個類型的引用指向不同對象時會有不同的實現(xiàn);
同一個對象伊群,造型成不同類型時考杉,會有不同的功能。
強制轉(zhuǎn)型
可以通過強制轉(zhuǎn)換將父類型轉(zhuǎn)換為子類型變量舰始,前提是該變量指向的對象確實是該子類型崇棠。[如果不符合將出現(xiàn):類型強制轉(zhuǎn)換異常:ClassCastException]
也可以通過強制轉(zhuǎn)換將變量轉(zhuǎn)換為某種接口類型,前提是該變量指向的對象確實實現(xiàn)了該接口丸卷。
instanceof關(guān)鍵字
對象instanceof類型:如果對象屬于類型枕稀,則返回true;反之返回false.
匿名內(nèi)部類
如果在一段程序中需要創(chuàng)建一個類的對象(通過這個類需要實現(xiàn)某個接口或者繼承某個類)谜嫉,而且對象創(chuàng)建后萎坷,這個類的價值也就不存在了,這個類可以
不必命名沐兰,稱之為匿名內(nèi)部類食铐。