天天看點

Java 抽象類&具體類&接口 小結一、抽象函數與抽象類二、接口與具體類

Java抽象類&具體類&接口小結

  • 一、抽象函數與抽象類
  • 二、接口與具體類

一、抽象函數與抽象類

抽象函數:表達概念而沒有具體實作的函數。

抽象類:表達概念而無法構造出實體的類,用abstract class定義。

抽象類特點:

(1)抽象類可以有或沒有具體方法,但至少有一個抽象方法

(2)抽象類不能用new制造對象,但是可以定義變量;可以定義它的構造方法,可在子類的構造方法中調用。

(3)任何繼承該抽象類的具體類都需要實作該抽象類中所有的抽象方法

(4)抽象類不能被執行個體化,需要在子類中實作其所有抽象函數

二、接口與具體類

接口:當一個抽象類的所有函數都是抽象函數時,就是接口,接口定義用interface。

接口的特點:

(1)接口不能被執行個體化,隻能被類實作或被其它接口繼承

(2)接口不能繼承類

(3)任何繼承該接口的具體類都需要實作該接口中所有的抽象方法

(4)接口可以通過在方法前加default修飾來實作具體方法

具體類:當一個類中沒有抽象函數時,就是具體類,由class定義

具體類的特點:

(1)一個具體類可以實作多個接口,但隻能繼承一個父類

(2)一個具體類必須實作所有其所實作的接口的所有方法

(3)一個具體類在實作接口的方法時不能弱化接口方法的規約