接口和接口之間的關系
繼承關系
可以多繼承,並且可以多層繼承
注意:
1.如果多個父接口中有同名的抽象方法,那么子接口只需要實現一次即可
2.如果多個父接口中有同名的默認方法,那么子接口必須重寫默認方法,必須要加default關鍵字3.如果多個父接口中有同名的靜態方法,那么無須理會,因為靜態方法只能供接口使用
4.如果多個父接口中有同名的私有方法,那么無須理會,因為私有方法只能本接口使用
接口和類之間的關系
實現關系
單實現: 一個類只實現一個接口
多實現: 一個類可以同時實現多個接口
格式:
public class 類名 implements 接口名1,接口名2,...{ }
注意:
1.如果多個接口中有同名的抽象方法,那么實現類只需要實現一次即可
2.如果多個接口中有同名的默認方法,那么實現類必須重寫一次,並且要去掉default關鍵字
3.如果多個接口中有同名的靜態方法,那么實現類無須理會,接口中的靜態方法只供接口直接使用
4.如果多個接口中有同名的私有方法,那么實現類無須理會,因為接口中的私有方法只能在本接口中使用
子接口重寫父接口的默認方法,必須加default關鍵字
實現類重寫接口中的默認方法,必須去掉default關鍵字
一個類既可以繼承另一個類,也可以實現多個接口
格式:
public class 類名 extends 父類名 implements 接口名1,接口名2,...{
}
注意:
1.如果接口和父類中有同名的默認方法,優先調用父類的默認方法
2.如果接口和父類中有同名的抽象方法,那么子類必須重寫一次抽象方法
普通類、抽象類和接口
普通類: 成員變量,構造方法,成員方法,靜態代碼塊
抽象類: 成員變量,構造方法,成員方法,靜態代碼塊,抽象方法 ---> 不能直接創建對象
接口: 常量,默認方法,靜態方法,私有方法,抽象方法 ---> 不能直接創建對象
接口作為方法的參數,可以接收該接口的所有實現類的對象
接口作為方法的返回值,可以返回該接口的所有實現類的對象