更新時(shí)間:2020-08-07 16:43:53 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3232次
一、抽象(abstract)的使用
當(dāng)父類(lèi)的某些方法不確定時(shí),可以用abstract關(guān)鍵字來(lái)修飾該方法[抽象方法],用abstract來(lái)修飾該類(lèi)[抽象類(lèi)]。
我們都知道,父類(lèi)是將子類(lèi)所共同擁有的屬性和方法進(jìn)行抽取,這些屬性和方法中,有的是已經(jīng)明確實(shí)現(xiàn)了的,有的還無(wú)法確定,那么我們就可以將其定義成抽象,在后日子類(lèi)進(jìn)行重用,進(jìn)行具體化。這樣,抽象類(lèi)也就誕生了。
例如,定義了“動(dòng)物”父類(lèi),其中“動(dòng)物名稱(chēng)”和“動(dòng)物年齡”屬性已經(jīng)明確了,但是“動(dòng)物叫”的方法沒(méi)有明確,此時(shí)就可以將“動(dòng)物叫”定義為抽象方法。
所以,抽象類(lèi)是為了把相同的但不確定的東西的提取出來(lái),為了以后的重用。定義成抽象類(lèi)的目的,就是為了在子類(lèi)中實(shí)現(xiàn)抽象類(lèi)。
package?javastudy;
public?class?AbstractDemo1?{
????public?static?void?main(String[]?args)?{
????????//?TODO?Auto-generated?method?stub
????}
}
//?這就是一個(gè)抽象類(lèi)
abstract?class?Animal?{
????String?name;
????int?age;
????//?動(dòng)物會(huì)叫
????public?abstract?void?cry();?//?不確定動(dòng)物怎么叫的。定義成抽象方法,來(lái)解決父類(lèi)方法的不確定性。抽象方法在父類(lèi)中不能實(shí)現(xiàn),所以沒(méi)有函數(shù)體。
//?抽象類(lèi)可以被繼承
//?當(dāng)繼承的父類(lèi)是抽象類(lèi)時(shí),需要將抽象類(lèi)中的所有抽象方法全部實(shí)現(xiàn)。
class?cat?extends?Animal?{
????//?實(shí)現(xiàn)父類(lèi)的cry抽象方法
????public?void?cry()?{
????????System.out.println("貓叫:");
????}
}
二、用abstract修飾的類(lèi),即抽象類(lèi);用abstract修飾的方法,即抽象方法。
三、抽象方法不能有方法主體。格式如下:
abstract void xxx();
四、抽象類(lèi)不能被實(shí)例化。因?yàn)槌橄箢?lèi)中方法未具體化,這是一種不完整的類(lèi),所以直接實(shí)例化也就沒(méi)有意義了。
五、抽象類(lèi)中不一定要包含abstrace方法。也就是了,抽象中可以沒(méi)有abstract方法。
六、一旦類(lèi)中包含了abstract方法,那類(lèi)該類(lèi)必須聲明為abstract類(lèi)。
Java抽象類(lèi):http://www.dabaquan.cn/tutorial_java_advance/609.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java抽象類(lèi)抽象方法及使用”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743