python學(xué)了有什么用 python下的抽象類的用途和意義?
python下的抽象類的用途和意義?抽象類不完整,只能用作基類。它不同于非抽象類:1。抽象類不能直接實例化,對抽象類使用new運算符是編譯時錯誤。盡管某些變量和值在編譯時可以是抽象類型,但這些變量和值
python下的抽象類的用途和意義?
抽象類不完整,只能用作基類。
它不同于非抽象類:1。抽象類不能直接實例化,對抽象類使用new運算符是編譯時錯誤。
盡管某些變量和值在編譯時可以是抽象類型,但這些變量和值必須為null或包含對從抽象類派生的非抽象類實例的引用。
2. 允許(但不要求)抽象類包含抽象成員。
3. 抽象類不能被密封。
從抽象類派生非抽象類時,這些非抽象類必須具體實現(xiàn)所有繼承的抽象成員,以便重寫這些抽象成員。
在以下示例中:抽象類a{public abstract void f()}抽象類B:a{public void g(){}}抽象類C:B{public override void f(){//f}}抽象類a引入抽象方法f。
類B引入另一個方法g,但由于它不提供f的實現(xiàn),B也必須聲明為抽象類。
C類重寫F并提供具體的實現(xiàn)。
由于C中沒有抽象成員,因此可以(但不是必須)將C聲明為非抽象類。
抽象類與接口密切相關(guān)。
但是接口比抽象類更抽象,主要體現(xiàn)在它們的區(qū)別上:1)類可以實現(xiàn)無限的接口,但只能繼承一個抽象類(或任何其他類型)的接口,從抽象類派生的類仍然可以實現(xiàn)接口,因此,接口被用來解決多重繼承的問題。
2)抽象類可以有非抽象方法,接口不能,抽象類中的方法只是一個聲明,沒有具體實現(xiàn)的方法必須用public修改。
3)抽象類中的成員變量可以由不同的修飾符修改,接口中的成員變量默認為靜態(tài)final。
4)這也是最重要的一點,其實質(zhì)是“抽象類是對象的抽象,接口是行為規(guī)范”。
抽象類中的方法不一定是抽象方法嗎?
這是一個從對象中刪除不重要細節(jié)的過程。只保留那些描述物體本質(zhì)特征的關(guān)鍵點。例如:蘋果、香蕉、普通水果、桃子等。它們的共同特點是水果。水果概念的獲得過程是一個抽象的過程。抽象類和方法的目的是去掉多個類的公共屬性,讓其他類作為單個類繼承它們。當我們需要使用多態(tài)性時,一些方法必須在子類中重新定義。讓我們看一下各種語言的編寫方法:C、Java和animal的編寫方法。爪哇,貓。爪哇,狗。爪哇,主要。Java、python