接口的定义
1. 接口就是一种公共的规范标准,只要符合规范标准,就可以通用。
2. 接口就是一种引用数据类型,可以作为方法的参数。
3. 接口不能直接使用,必须有一个“实现类”来实现该接口。
举个🌰:Integer类、String类都实现了Comparable接口
4. 接口的实现类必须覆盖重写接口中所有的抽象方法,如果实现类没有覆盖重写接口的所有抽象方法,那么这个实现类自己就必须是抽象类。
多态的定义
多态是指将父类的引用指向子类,即父类中的同一个方法在不同子类中表现出不同形式
多态的格式:
- 父类名称 对象名 = new 子类名称();
- 接口名称 对象名 = new 子类名称();
口诀:编译看左边,运行看右边
接口作为方法参数
接口可以作为方法的参数和返回值。
当形式参数为接口时,调用方法的实际参数必须是接口的实现类。
如下面代码所示,在String中实现了Comparable接口。
public static void main(String[] args) {
//在main中调用show方法
String[] str = new String[2];
str[0] = "可琦安";
str[1] = "星黛露";
show(str);
}
//定义了一个show方法,输出数组a中的元素
public static void show(Comparable[] a){
for(int i = 0; i < a.length; i++){
System.out.print(a[i] + " ");
}
}
接口作为方法参数就是多态的一个体现。
举个🌰:上述的Comparable也可以用来输出int类型的数组,因为Integer也实现了Comparable接口。
public static void main(String[] args) {
//在main中调用show方法
int[] a = new int[2];
a[0] = 1;
a[1] = 2;
show(a);
}
//定义了一个show方法,输出数组a中的元素
public static void show(Comparable[] a){
for(int i = 0; i < a.length; i++){
System.out.print(a[i] + " ");
}
}