抽象類實際上是能夠實例化的,可是他的實例化方式不是經過new方式來建立對象,而是經過父類的引用來指向子類的實例來間接地實現父類的實例化
(由於子類要實例化前,必定會先實例化他的父類。這樣建立了繼承抽象類的子類的對象,也就把其父類(抽象類)給實例化了).可是:接口是不能被實例化的(接口壓根就沒有構造函數)。
本身總結的,有遺漏請私我指正,不知道爲何網上都說接口沒有Main方法,然而我用IDEA和eclipse是能夠的,不知道是否是我理解錯了。
jdk1.8以前 html
接口 eclipse
1.多實現 ide
2.變量類型默認且只能爲爲public static final 函數
3.函數類型默認且只能爲public,只能有public類型的靜態成員函數 post
4.非靜態成員函數沒有方法體,靜態成員函數有方法體 spa
5.子類必須實現全部接口函數 orm
6.能夠有main方法;能夠new一個接口,須要在方法體中實現全部接口函數 htm
7.沒有構造器 對象
抽象類 blog
1.單繼承
2.變量類型不限(靜態變量+非靜態變量)
3.函數類型不限(靜態函數+非靜態函數)
4.非靜態函數包含沒有方法體的抽象函數. 有方法體的普通函數
5.子類能夠不覆寫父類的抽象方法,但子類也要申明爲抽象類;子類能夠選擇覆寫父類的非抽象方法
6.能夠有main方法;不能夠new一個抽象類
7.能夠有構造器
Jdk1.8
接口中能夠有default類型的方法,實現類能夠選擇實現該方法
意義:默認方法的主要優點是提供一種拓展接口的方法,而不破壞現有代碼。另外一個優點爲該方法是可選的,子類能夠根據不一樣的需求Override或默認實現。