接口 不单单指 interface 也包括抽象类,这种设计模式的理念是在实现之初采用自上而下的思想, 不针对具体实现跳出面向过程的编程思维,
从而便于以后的维护与修改
接口的设计一般是一种行为,他的子类都要实现它,具体的实现让子类完成
抽象类的抽象方法是选择性实现的,没有接口那么的强制性
接口的编程可以让代码具有弹性 interfaceName IFN= new concreteName();
针对接口编程可以隔离掉以后系统发生的一大堆改变,因为代码是针对接口而写,那么通过多态,它可以与任何实现该接口的新类型对接。