接口就是一些标准,把一些标准的制度写成方法,例如一个汽车必须有四个轮子,就可以把制造汽车写为一个接口,而制造四个轮子为接口必须方法,实现它的类就必须要实现制造四个轮子的方法。
语言、程序、框架的发展都是解耦、分离依赖性的过程,例如springIOC中,将接口的实现类都配置在xml中,如果更换实现类,只需修改xml文件,而不用去修改代码,这样就是降低依赖性。
这个东西只能自己慢慢体会,在一个可以多看看java三个特征继承、封装、多态中的多态,理解了多态,接口就自然会用了。
接口都没有实现的方法体,还得调用时候自己去实现,那我要它干嘛啊?直接实现多好??所以接口就好像是多此一举。
这个不一样,比如我们定义一个图形接口,有个绘图方法。他下面有三个实现类,一个方形、一个三角形和一个圆形。而有个公共方法需要获得这个图形处理的时候,定义参数,就是接口的引用就可以,这样传进来哪个就获取的是哪个,如果你不定义接口,直接就是三个实现类,你参数写哪个?如果写Object,代码里同样要判断对象属于哪个类,如果我们再增加一个菱形的类,那岂不是要修改代码?
接口不能直接调用,可以先实现了接口里面的方法在调用。
public interface test1{
void getSome();
}
public class test2 implements test1{
public void getSome(){
System.out.println(111);
}
}
多实现: public class A_class<...> implements B_interface,C_interface<>,.... //逗号分隔
泛型: public class X类 extends Y类< 。。>
public class A类< T> implements B类<T>{ //*****}
接口interface 内部类访问时, 接口名.类名
***java中不支持,类的多继承。(extends),但是一个类可以实现(implements)多个接口。
继承是接口实现的特例。 is--a 与 like--a的区别