1. 接口組成更新
1.1 接口組成更新概述
1.2 接口中默認方法
代碼示例:
需求:
- 1:定義一個接口MyInterface,裏面有兩個抽象方法:
void show1();
void show2(); - 2:定義接口的實現類:
MyInterfaceImpl - 3:定義測試類:
MyInterfaceDemo
在主方法中,按照多態的方式創建對象並使用
接口MyInterface:
//1:定義一個接口MyInterface,裏面有兩個抽象方法:
// void show1();
// void show2();
public interface MyInterface {
void show1();
void show2();
//default默認方法,可以使實現類不用實現該方法。
//還可以直接定義方法內容
default void show3() {
System.out.println("One show3");
}
}
定義接口的實現類:
//2:定義接口的實現類:
//MyInterfaceImpl
public class MyInterfaceImpl implements MyInterface {
@Override
public void show1() {
System.out.println("One show1");
}
@Override
public void show2() {
System.out.println("One show2");
}
//實現類中並沒有實現show3方法,但是也沒有報錯。
}
定義測試類:
//3:定義測試類:
//MyInterfaceDemo
//在主方法中,按照多態的方式創建對象並使用
public class MyInterfaceDemo {
public static void main(String[] args) {
MyInterface my = new MyInterfaceImpl();
my.show1();
my.show2();
// 如果想要添加一個新的接口方法,但是別的實現類又不要實現它,怎麼辦?
// 在接口中使用default
my.show3();
}
}
運行結果:
show3方法也可以被重寫這裏就不寫示例了。
1.3 接口中靜態方法
代碼示例:
需求:
- 1:定義一個接口Inter,裏面有三個方法:一個是抽象方法,一個是默認方法,一個是靜態方法
void show();
default void method(){ }
public static void test(){ } - 2:定義接口的一個實現類:
InterImpl - 3:定義測試類:
InterDemo
在主方法中,按照多態的方式創建對象並使用
接口Inter
//1:定義一個接口Inter,裏面有三個方法:一個是抽象方法,一個是默認方法,一個是靜態方法
//void show();
//default void method(){ }
//static void test(){ }
public interface Inter {
void show();
default void method() {
System.out.println("Inter 中的默認方法執行了");
}
static void test() {
System.out.println("Inter 中的靜態方法執行了");
}
}
實現類InterImpl
//2:定義接口的一一個實現類:
//InterImpl
public class InterImpl implements Inter {
@Override
public void show() {
System.out.println("show方法執行了");
}
}
測試類:
//3:定義測試類:
//InterDemo
//在主方法中,按照多態的方式創建對象並使用
public class InterDemo {
public static void main(String[] args) {
Inter i = new InterImpl();
i.show();
i.method();
// 接口中的靜態方法只能由類名調用,這樣的爲了防止一個實現類實現兩個接口,但是兩個接口中又有同名稱的靜態方法。
// i.test();
Inter.test();
}
}
運行結果: