1.什么是接口
当一个类中的方法都是抽象方法时,那么这时我们就不再使用 abstract 关键字来进行修改,而是使用 interface 关键字来修饰,被 interface 关键字修饰的类就是接口
2.如何定义接口
public interface InterfaceDemo01 {
//加
public abstract int add(int a, int b);
//减
public abstract int subtract(int a, int b);
//乘
public abstract int multiply(int a, int b);
//除
public abstract int divide(int a, int b);
}
上述代码中都是使用 abstract 关键字修饰的抽象方法
同时接口中的所有方法都是公有的方法,因此 public 关键字也可以去掉
public interface InterfaceDemo01 {
//加
int add(int a, int b);
//减
int subtract(int a, int b);
//乘
int multiply(int a, int b);
//除
int divide(int a, int b);
}
3.如何使用接口
定义接口的目的是为了规范程序,即让子类拥有我们给定的标准,因此我们需要定义子类来实现接口中的所有方法
public class Calculate implements InterfaceDemo01{
@Override
public int add(int a, int b) {
return a + b;
}
@Override
public int subtract(int a, int b) {
return a - b;
}
@Override
public int multiply(int a, int b) {
return a * b;
}
@Override
public int divide(int a, int b) {
return a / b;
}
}
实现接口的关键字是 implements , 在这个关键字后面跟上接口名称
4.使用接口的好处
1.灵活性高
2.耦合度低
3.接口与接口之间可以继承,而且支持多继承
public interface InterA {
void show();
}
public interface InterB {
void show();
}
public interface InterC extends InterA, InterB {
//void show();
}
public class InterCInstance implements InterC{
@Override
public void show() {
System.out.println("show");
}
public static void main(String[] args) {
new InterCInstance().show();
}
}
之所以接口中支持多继承,原因在于接口中所有的方法都没有实现
5.接口的作用
接口是用来规范程序的,可以在接口中声明要实现的功能,而具体的实现我们放在子类中去完成
6.接口和抽象类的区别和联系
1.联系:
当抽象类中所有方法都是抽象方法时,就相当于接口,即接口是抽象类中的特例
2.区别:
(1)接口是使用 interface 关键字修饰,而抽象类是 abstract 关键字修饰
(2)接口中的所有方法都是抽象方法,而抽象类中可以有非抽象方法
(3)接口中定义变量都是静态变量,而抽象类中可以定义普通变量
(4)接口是通过 implements 关键字来实现,而抽象类是通过 extends 关键字来继承
(5)接口是支持多继承,而抽象类是不支持多继承
3.相同:
(1)不管是接口还是抽象类,都必须要有子类
(2)都是抽取了子类相同功能的代码
(3)都可以起到程序的规范作用