接口是用来规范类的 它可以避免类在设计上的不一致 这在多人合作的开发中犹为重要 就比如接口中有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(); } }