为什么说接口能松耦合?

因为多态的特性,父类或者接口的引用是可以接受子类对象的。 比如:
interface Test{}
class Test1 implements Test{}
class Test2 implements Test{}
上面声明一个Test接口,两个类Test1和Test2,分别实现Test接口。
表现耦合低的意思是说,删除调用层与接受层无关,比如:有这样一个方法可以这样设置参数类型
void say(Test test){System.out.println("");} 
然后调用时可以这样传参数
Test1 t1 = new Test1();
Test2 t2 = new Test2():
say(t1); 或 say(t2);
这就是降低耦合,say方法只需要接口类型,具体传入哪个对象是无需关注的,因为接口是一种规则,
say方法进来的参数一定是实现Test接口类的对象。
即使有一天将Test1与Test2两个类删除,Test接口还在,那么say方法就有用,并且随意扩展一个新的类来实现Test接口,这叫做向后兼容
原文地址:https://www.cnblogs.com/huixuexidezhu/p/8260126.html