抽象類中的方法不一定是抽象方法嗎?
它時(shí)一個(gè)去除對象中不重要的細(xì)節(jié)的過程,只有那些描述了對象的本質(zhì)特征的關(guān)鍵點(diǎn)才被保留。例如:蘋果、香蕉,普通,桃子等。它們的共同特征就是水果。得出水果概念的過程,就是一個(gè)抽象的過程。 抽象類和方法的目的就是把多個(gè)類的共有屬性拿出來,單獨(dú)作為一個(gè)類來讓其他類去繼承。
抽象類在什么情況下比較適用
需要運(yùn)用多態(tài),并且某些方法在子類中必須重定義時(shí)。 下面看下各個(gè)語言的寫法: c++的寫法java的寫法Animal .java Cat .java Dog .java Main .java python的寫法對比總結(jié):抽象類不能被實(shí)例化,只能被繼承,然后繼承類實(shí)例化;c++通過定義virtual修飾的函數(shù)來實(shí)現(xiàn)抽象類;java通過abstract來實(shí)現(xiàn)抽象類和方法,如果類中至少存在一個(gè)抽象函數(shù),則該類必須聲明為抽象類,即函數(shù)和類前都必須用abstract修飾;python需要借助abc模塊來實(shí)現(xiàn)抽象類;