目录
接口
什么是接口?
如何使用接口
接口
什么是接口?
接口是由抽象类衍生出来的一个概念,并由此产生了一种编程方式:面向接口编程。
面向接口编程就是将程序中的业务模块进行分离,以接口的形式去对接不同的业务模块。
面向接口编程的优点:当用户需求变更时,只需要切换不同的实现类,而不需要修改串联模块的接口,减少对系统的影响。
1、能够最大限度实现解耦合,降低程序的耦合性。
2、使程序易于扩展。
3、有利于程序的后期维护。
如何使用接口
接口在 Java 中时独立存在的一种结构,和类相似,我们需要创建一个接口文件,Java 中用 class 关键字来标识类,用 interface 来标识接口,基本语法:
public interface 接口名{
public 返回值 方法名(参数列表)
}
接口其实就是一个抽象类,极度抽象的抽象类。
抽象类:一个类中一旦存在没有具体实现的抽象方法时,那么该类就必须定义为抽象类,同时抽象类允许存在非抽象方法。
但是接口完全不同,接口中不能存在非抽象方法,接口中必须全部是抽象方法。
因为接口中必须全部都是抽象方法,所以修饰抽象方法的关键字 abstract 可以省略。
接口中允许定义成员变量,但是有如下要求:
1、不能定义 private 和 protected 修饰的成员变量,只能定义 public 和默认访问权限修饰符修饰的成员变量。
2、接口中的成员变量在定义时就必须完成初始化。
3、接口中的成员变量都是静态常量,既可以直接通过接口访问,同时值不能被修改。
public interface MyInterface {
public int ID = 0;
String NAME = "张三";
public void test();
}
使用接口时,不能直接实例化接口对象,必须实例化其实现类对象,实现类本身就是一个普通的 Java 类,创建实现类的代码如下所示。
public class MyInterfaceImpl implements MyInterface {
@Override
public void test() {
// TODO Auto-generated method stub
}
}
implements 关键字来指定实现类具体要实现的接口,在实现类的内部需要对接口的所有抽象方法进行实现,同时要求访问权限修饰符、返回值类型、方法名和参数列表必须完全一致。
Java 只支持单继承,但是接口可以多实现(一个实现类可以同时实现多个接口)
public interface MyInterface {
public int ID = 0;
String NAME = "张三";
public void fly();
}
public interface MyInterface2 {
public void run();
}
public class MyInterfaceImpl implements MyInterface,MyInterface2 {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("实现了跑步的方法");
}
@Override
public void fly() {
// TODO Auto-generated method stub
System.out.println("实现了飞行的方法");
}
}
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
MyInterfaceImpl myInterfaceImpl = new MyInterfaceImpl();
myInterfaceImpl.fly();
myInterfaceImpl.run();
}
}