接口是用来规范类的
它可以避免类在设计上的不一致
这在多人合作的开发中犹为重要
就比如接口中有A方法
那么实现这个接口就必须实现A方法
这就形成了一种规范
那有了接口你不觉得方便了项目的管理吗!?
比如在一个多语言的网站中,需要根据用户使用的语言不同来使用不同的页,这时候需要转换编码方式的函数,(假如每个小组开发一种语言部分)编码转换的函数在JAVA BEAN 中如果每个小组在BEAN中的转化函数名字都不一样就为以后的程序维护增添很多的麻烦,而如果用了接口呢大家的BEAN都继承这个接口只需要重写方法就可以了方法名也不就统一了吗?!
当然这个例子并不能完全说明借口的优势,但就凭这一点我们也应该看到了借口的价值了,不是吗?!
1、JAVA多态接口动态加载实例
2、JAVA接口作为参数传递
可以将接口类型作为方法参数, 在使用时可以将实现了接口的类传递给方法,实际调用的是实现类中的方法代码体, 这样便根据传入的参数的不同而实现不同的功能。 重要的是, 当我当前需要另外一个对象并且拥有承受所声明的方法的时候, 我们不必须原类, 只需新的类实现接口即可。
public interface Comm {
double eat();
}
public class Chinese implements Comm {
@Override
public double eat() {
System.out.println("用筷子吃饭");
return 0;
}
}
public class American implements Comm {
@Override
public double eat() {
System.out.println("美国人用刀叉吃饭");
return 0;
}
}
public class Sinkiang implements Comm {
@Override
public double eat() {
System.out.println("新建人手抓饭");
return 0;
}
}
package 多态;
public class Test {
public static void main(String[] args) {
Comm comm=null;
try {
comm = (Comm)Class.forName("多态.Chinese").newInstance();
iseat(comm);
comm = (Comm)Class.forName("多态.American").newInstance();
iseat(comm);
comm = (Comm)Class.forName("多态.Sinkiang").newInstance();
iseat(comm);
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
e.printStackTrace();
}
}
public static double iseat(Comm comm){
return comm.eat();
}
}