1、接口是一個特殊的抽象類,接口中的所有方法都是抽象方法,所有的屬性都是靜態常量,一個類可以實現多個接口
接口無修飾符和為abstract時,不能包之間調用;public修飾時,可以包之間調用,但是要導入包
2、接口裡的變量,默認是靜態常量,必須賦值,所以a錯誤;\n接口裡的只能有抽象方法並且必須為public修飾,就算不加,默認也是public,所以b錯誤;\n接口裡只能是抽象的方法,不能有實現體
3、接口裡可以定義普通方法,用static或者final修飾,static定義的靜態方法可以用類名或對象調用,final定義的普通方法對象調用;
4、抽象類Cat實現了Pet接口,所以Cat中會有3個方法,只實現了eat()方法,所以還有2個抽象方法,即sleep()和run()方法。CatImpl作為實體類,繼承了Cat類,所以必須重寫這兩個抽象方法。父類重寫了接口的方法子類已經有了,而且父類實現的方法不是抽象方法,子類只需要把接口中另外的抽象方法重寫即可。
5、子類的訪問權限不能比父類小
6、接口的實現和父類的繼承是不一樣的,接口中final和static修飾的方法不能在實現類中重寫
7、使用接口更容易替換實現,使用接口搭建程序框架更容易,也更好地體現了設計與實現的分離,接口可以多繼承,抽象類只能單繼承
8、用抽象類實現接口可以不用重寫接口方法
9、父類中的類方法是否能在子類中重寫,不可以
10、接口的方法實現了就變成非抽象方法了
11、接口不能實例化,也不能有構造方法
12、接口繼承接口不需要對方法進行重寫
13、接口不可以繼承類