抽象類和介面

2021-09-01 16:53:46 字數 1354 閱讀 9830

在進行程式設計時,在父類中只對各個子類的共同功能進行描述而不實現,將實現交由各個子類依據自身的業務要求進行具體實現,達到程式設計的靈活性.

只有方法申明,沒有方法實現,用abstract修飾

含有抽象方法的類一定是抽象類,抽象類中的所有方法並非一定都是抽象方法.

抽象類不能直接構造為物件,因為抽象類中存在沒有實現的抽象方法,一般而言構造抽象類物件是指構造抽象類的子類物件

抽象類的子類必需覆蓋父類中的所有抽象方法,否則該子類還是乙個抽象類.

b extends a

b b = new b(  );

這裡的順序是:

1. 構造a類物件   2. 呼叫a類建構函式

3. 構造b類物件   4. 呼叫b類的建構函式

模板設計模式(templage-pattern)

在定義乙個父類時,在父類中應盡可能多的將各個子類的共同功能進行實現或者描述,而將不同功能交給子類依據自身的業務要求進行具體實現,限制子類設計的隨意性。即由父類實現不變部分,由子類實現可變部分。

特殊的抽象類,常量定義與方法申明的集合

語法特徵:介面中的變數預設是public static final修飾的,即為常量。

介面中的方法預設是public abstract修飾的,即為抽象方法

乙個介面可以繼承其他多個介面,但不是為了實現多重繼承(因為介面中的方法沒有功能實現)

實現類實現介面,必須實現介面中的所有抽象方法,否則該實現類是乙個抽象類

乙個類在繼承另乙個類的同時,還可以實現其他多個介面

從層次關係上變現為實現類與介面,但在使用關係上相當於與子類與父類的關係

多重父類時,先構造最頂級的父類物件,再以記憶體覆蓋的方式構造子類物件

重寫的方法用到父類功能是要加super,不加的話就相當於你自己建立了乙個方法,自己呼叫自己。

作用:兩者是站在程式架構設計的校對分析程式系統的結構及呼叫關係。

相同點:進行程式設計時不會考慮具體業務的實現,而是採取層級抽象、逐步實現的原則實現軟體系統。兩者都不能直接構造為物件,而只能構造其子類(對應的是抽象類)或者實現類(對應的是介面)的物件。都可以通過父類型別的或者是介面型別的引用變數引用子類的例項物件。

不同點:抽象類採用的是部分抽象,而介面採用的是純抽象的方式。

抽象類只支援單一繼承,介面支援多重繼承。

抽象類中抽象方法必須明確用abstract修飾,而介面中的抽象方法預設就是abstract修飾的。

繼承關係表明了父類與子類在本質上是屬於同一類事物,而實現類是指實現了實現了介面中的某種功能,也可以通過別的途徑解決。

※:物件導向應用程式的體系結構:

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...