接口引入
在程序的开发中,需要完成两个数的求和运算和比较运算功能的类非常多。那么可以定义一个接口来将类似的功能组织在一起。下面创建一个示例,具体介绍接口的实现方式。
- 编写接口
public interface IMath {
public int sum(); // 完成两个数的相加
public int maxNum(int a,int b); // 获取较大的数
}
- 编写类,复现接口
public class MathClass implements IMath {
private int num1; // 第 1 个操作数
private int num2; // 第 2 个操作数
public MathClass(int num1,int num2) {
// 构造方法
this.num1 = num1;
this.num2 = num2;
}
// 实现接口中的求和方法
public int sum() {
return num1 + num2;
}
// 实现接口中的获取较大数的方法
public int maxNum(int a,int b) {
if(a >= b) {
return a;
} else {
return b;
}
}
}
- 编写测试类
public class NumTest {
public static void main(String[] args) {
// 创建实现类的对象
MathClass calc = new MathClass(100, 300);
System.out.println("100 和 300 相加结果是:" + calc.sum());
System.out.println("100 比较 300,哪个大:" + calc.maxNum(100, 300));
}
}
观察发现,求和、比较大小的具体方法,都是在 MathClass 类中实现的,这和继承的接口一点作用也没有,去掉 implements IMath ,代码依然正常执行,那为什么要带着这个接口呢?
作用
- 规范性。这些接口不仅告诉开发⼈员你需要实现那些业务,而且也将命名规范限制住了(防止⼀些 开发人员随便命名导致别的程序员无法看明白)
- 易维护、拓展。统一管理和查看定义的方法、参数,方便比较不同方法的区别,便于拓展。