抽象類(lèi)能不能實(shí)例化 抽象類(lèi)不能實(shí)例化那么有普通方法嗎?
抽象類(lèi)不能實(shí)例化那么有普通方法嗎?抽象類(lèi)是指有抽象方法的類(lèi),所以不能實(shí)例化但抽象類(lèi)可以有普通方法。如果抽象類(lèi)都是抽象方法,然后這個(gè)類(lèi)就變成了一個(gè)接口參考下面的原理圖代碼Abstract void f1
抽象類(lèi)不能實(shí)例化那么有普通方法嗎?
抽象類(lèi)是指有抽象方法的類(lèi),所以不能實(shí)例化
但抽象類(lèi)可以有普通方法。如果抽象類(lèi)都是抽象方法,然后這個(gè)類(lèi)就變成了一個(gè)接口
參考下面的原理圖代碼
Abstract void f1()
void f2(){
//做點(diǎn)什么..
}
!]類(lèi)Abstract B{
Abstract void f1()
Abstract void f2()
]=> interface B{
]void抽象類(lèi)的特征可以是實(shí)例化如下:
1。抽象類(lèi)不能直接實(shí)例化,對(duì)抽象類(lèi)使用new運(yùn)算符是編譯時(shí)錯(cuò)誤。盡管有些變量和值在編譯時(shí)可以是抽象類(lèi)型,但這些變量和值必須為null或包含對(duì)從抽象類(lèi)派生的非抽象類(lèi)實(shí)例的引用。
2. 允許(但不要求)抽象類(lèi)包含抽象成員。
3. 抽象類(lèi)不能被密封。從抽象類(lèi)派生非抽象類(lèi)時(shí),這些非抽象類(lèi)必須實(shí)現(xiàn)所有繼承的抽象成員,以便重寫(xiě)哪些抽象成員。在下面的示例中:抽象類(lèi)a{public abstract void f()}AbstrB類(lèi):A{publicvoidG(){}}C類(lèi):B類(lèi)抽象類(lèi)a引入了抽象方法F。類(lèi)B必須為類(lèi)F提供一個(gè)抽象方法,但它也沒(méi)有為類(lèi)G提供一個(gè)抽象方法。類(lèi)C重寫(xiě)F并提供一個(gè)具體的實(shí)現(xiàn)。因?yàn)镃中沒(méi)有抽象成員,所以可以(但不是必須)將C聲明為非抽象類(lèi)。
抽象類(lèi)可以被實(shí)例化嗎?
Calendar c=new Calendar()當(dāng)new Calendar()出現(xiàn)時(shí),將實(shí)例化一個(gè)對(duì)象。所以如果它是一個(gè)抽象類(lèi),就不能是這樣的新類(lèi)。如果你想要新的,它沒(méi)有抽象的子類(lèi)。抽象類(lèi)是不允許實(shí)例化的類(lèi);抽象方法是沒(méi)有方法體的方法。
1. 抽象類(lèi)不能包含抽象方法。無(wú)論如何,它不會(huì)被實(shí)例化。抽象類(lèi)不能被實(shí)例化,也就是說(shuō),它不能使用new關(guān)鍵字來(lái)生成對(duì)象。抽象方法只需要聲明,而不需要實(shí)現(xiàn)。抽象類(lèi)的子類(lèi)必須覆蓋所有抽象方法才能實(shí)例化。否則,子類(lèi)仍然是一個(gè)抽象類(lèi)。方法是抽象的,沒(méi)有本質(zhì)的影響。
2. 但是,不能實(shí)例化包含抽象方法的類(lèi)。否則,在執(zhí)行這個(gè)方法時(shí)應(yīng)該怎么做?
3. 如果子類(lèi)是非抽象的,則必須在父類(lèi)中實(shí)現(xiàn)抽象方法;否則繼承的抽象方法仍然沒(méi)有方法體,是抽象方法,這與“包含抽象方法的類(lèi)必須是抽象類(lèi)”相矛盾。抽象類(lèi)與接口密切相關(guān)。它們不能被實(shí)例化,并且常常是部分實(shí)現(xiàn)或者根本沒(méi)有實(shí)現(xiàn)。抽象類(lèi)和接口之間的主要區(qū)別之一是,一個(gè)類(lèi)可以實(shí)現(xiàn)無(wú)限多個(gè)接口,但只能從抽象(或任何其他類(lèi)型)類(lèi)繼承。從抽象類(lèi)派生的類(lèi)仍然可以實(shí)現(xiàn)接口。創(chuàng)建組件時(shí)可以使用抽象類(lèi),因?yàn)樗鼈冊(cè)试S您在某些方法中指定不變級(jí)別的功能,但在需要類(lèi)的特定實(shí)現(xiàn)之前,不要實(shí)現(xiàn)其他方法。抽象類(lèi)也會(huì)進(jìn)行版本控制,因?yàn)槿绻缮?lèi)中需要其他功能,則可以將其添加到基類(lèi)中,而不會(huì)破壞代碼。在實(shí)現(xiàn)抽象類(lèi)時(shí),必須實(shí)現(xiàn)類(lèi)中的每個(gè)抽象方法,并且每個(gè)實(shí)現(xiàn)的方法必須接收相同數(shù)量和類(lèi)型的參數(shù),并具有與抽象類(lèi)中指定的方法相同的返回值。