“抽象類”和“接口”的區別如下:1、抽象類和接口都不能直接實例化,如果要實例化,抽象類變量必須指向實現所有抽象方法的子類對象,接口變量必須指向實現所有接口方法的類對象。2、抽象類要被子類繼承,接口要被類實現。3、接口只能做方法申明,抽象類中可以做方法申明,也可以做方法實現4、接口里定義的變量只能是公共的靜態的常量,抽象類中的變量是普通變量。5、抽象類里的抽象方法必須全部被子類所實現,如果子類不能全部實現父類抽象方法,那么該子類只能是抽象類。同樣,一個實現接口的時候,如不能全部實現接口方法,那么該類也只能為抽象類。6、抽象方法只能申明,不能實現,接口是設計的結果 ,抽象類是重構的結果7、抽象類里可以沒有抽象方法8、如果一個類里有抽象方法,那么這個類只能是抽象類9、抽象方法要被實現,所以不能是靜態的,也不能是私有的。10、接口可繼承接口,并可多繼承接口,但類只能單根繼承。如果你想實現多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類不能夠繼承多個類,但可以實現多個接口。因此你就可以使用接口來解決它。如果基本功能在不斷改變,那么就需要使用抽象類。如果不斷改變基本功能并且使用接口,那么就需要改變所有實現了該接口的類。擴展資料:抽象類:接口:接口是抽象方法的集合。如果一個類實現了某個接口,那么它就繼承了這個接口的抽象方法。這就像契約模式,如果實現了這個接口,那么就必須確保使用這些方法。接口只是一種形式,接口自身不能做任何事情。