重載與重寫的區(qū)別 java Java繼承和實現(xiàn)的區(qū)別是什么?
Java繼承和實現(xiàn)的區(qū)別是什么?表面的區(qū)別是單繼承和多實現(xiàn)繼承:如果多個類的一部分具有相同的功能,則可以抽象一個類,并將它們相同的部分放入父類中,以便它們可以繼承該類。實現(xiàn):如果多個類的目標(biāo)是相同的,
Java繼承和實現(xiàn)的區(qū)別是什么?
表面的區(qū)別是單繼承和多實現(xiàn)繼承:如果多個類的一部分具有相同的功能,則可以抽象一個類,并將它們相同的部分放入父類中,以便它們可以繼承該類。實現(xiàn):如果多個類的目標(biāo)是相同的,但是處理方法不同,那么就定義一個接口,也就是一個標(biāo)準(zhǔn),讓自己實現(xiàn)這個接口,每個類都要實現(xiàn)自己特定的處理方法來處理這個目標(biāo),實際應(yīng)用會更復(fù)雜,這就得靠自己的能力了自己的探索,不是別人的話,書中的幾個定義你可以理解這一點,這些不能濫用。不要隨意繼承和實現(xiàn)接口,這樣只會使程序復(fù)雜化
1。在Java中,只能用接口實現(xiàn)多個實現(xiàn),類似于多重繼承
2。在Java中實現(xiàn)多重繼承的唯一方法是在接口之間。
讓我們從繼承開始,例如
class fu1
{
void show(){}]}
]class fu2
{
void show(){}]}
class Zi extensions fu1,fu2
{
void show(){}]}
]創(chuàng)建Zi引用以調(diào)用show方法時,Java虛擬機不知道要調(diào)用父類的哪個show方法
]類fu1
{
void show()]}
]類fu2
{
]void show()]}
]類Zi擴展fu1,fu2
{
void show(){}
}
fu1和F2的show方法是抽象的,沒有方法體
所以只有子類的show方法都有方法體,所以接口可以實現(xiàn)的更多,也就是變量的多重繼承
所以可以推斷接口可以繼承的更多,甚至接口a B和C的父接口都有相同的show()方法
但是它們都是抽象方法。A繼承了它們,它們也是抽象的。這個不能繼承嗎?從實現(xiàn)示例可以推斷接口可以繼承多個。