个人理解:定义接口变量为接收类型属于面向接口的编程,通过接口的抽象能减少类之间的耦合,增加可复用性. 面向接口编程: 一种规范约束 制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者). 接口本质上就是由制定者来协调实现者和调用者之间的关系. 只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到. 接口的语义是can-do语义,表约束(Constraint). 像JDBC的规范API,不管你使用哪一套实现,我们使用的时候都是使用相同的API. 分离设计与实