結論:抽象類能夠有構造方法,接口沒有構造方法!函數
接口中不能定義構造器的理由:
1. 構造器用於初始化成員變量,接口沒有成員變量(除了全局變量)
2. 類能夠實現多個接口,若多個接口都有本身的構造器,則很差決定構造器鏈的調用次序
3. 構造器是屬於類本身的,不能繼承。由於是純虛的,接口不須要構造器。spa
抽象類必定有構造方法,你不寫編譯器幫你加。由於子類的構造方法確定會super(),沒有就出錯了。
繼承
1.抽象類和接口中能夠有方法,可是隻有抽象類中有構造方法。
2.抽象類中能夠有方法的實現,接口中不能夠有方法的實現。接口
接口內只能有抽象方法,和靜態常量 不能有構造方法。
抽象類中能夠有實例方法和抽象方法,必須有構造方法,即便你不主動些構造方法,系統也給自動給你加上無參數空構造
編譯器
構造方法能夠置於抽象類中,抽象類只要求至少有一個方法是抽象方法就行
編譯
包含抽象方法的類叫作抽象類,也就是一個類只要有有聲明可是沒有方法體的方法那麼這個類就是抽象類,
接口是一個極度抽象類,已經規定死了,它裏面的方法都是抽象的方法。變量
抽象類中能夠有:構造函數、抽象函數、普通函數
而接口中只能有全局變量和抽象函數
構造函數
抽象類。是類和接口的過分,有現實的方法 也有空方法,有構造函數。兒接口就只有空的方法了,是沒有構造函數的方法
接口只能被實現不能new一個出來,顯然就沒有構造了
抽象類是被繼承的,子類的無參構造中有super(),這就說明了父類是有構造的new
抽象類中能夠有構造方法 能夠有普通方法 也能夠有抽象方法接口中的方法必須都是抽象方法(有聲明 無實現)