接口的应用场景

接口是用来规范类的 
它可以避免类在设计上的不一致 
这在多人合作的开发中犹为重要 

就比如接口中有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();
	}
	
}

  

原文地址:https://www.cnblogs.com/fuyuanming/p/5012012.html