抽象類和接口的區別
1、一個類可以實現任意多個接口,但它最多且只能作為一個抽象類的子類。
2、一個抽象類可以含有若干個非抽象方法,而接口的所有方法,無論是否顯示的聲明為抽象的,都是抽象的。
3、一個抽象類可以聲明實例變量,其子類可以繼承這些實例變量,而接口不能聲明實例變量,不過接口可以聲明static final修飾的域。
4、一個抽象類可以聲明構造方法,而抽象類不能。
5、一個抽象類的可見類修飾符可以是public\protected\private或者無修飾符(表示包內可見),而接口的可見性修飾符只能是public,或者無修飾符。
6、一個抽象類的抽象方法(非抽象方法還可以是private,當然是不能被繼承)可見性修飾符可以是public\protected或者無修飾符(表示包內可見),而一個接口的方法只能是public。
7、一個抽象類是從Object類派生來的,它繼承了Object類的clone()和eauals()方法。
共同點
1、都不能被實例化
2、子類必須實現抽象類或接口中的全部抽象方法