Java的四大特性:封装、抽象、继承和多态
Java反射机制?
动态语言?
什么事接口?
接口是一种规范。按照接口规范进行方法调用,就能获得所期望的功能按照接口规范实现接口的的方法,就能提供所期望的功能
接口的作用:
一是实现多重继承,因为java是单根语言。
二是便于实现各种框架,java 的各种框架中,都是拿接口调来调去。一旦你实现了这个接口,你的代码就嵌入了框架。
三是为了实现前面各位说的规范
1.接口在开发过程中可以快速分离工作内容。
比如调用者在写业务逻辑的时候需要一个功能,可能是数据库访问,或者复杂计算,但是他的工作专注于实现业务逻辑,不想分开精力去做底层实现,那么他只需要先实现一个接口,定义了规范,然后就可以继续他的业务逻辑代码了。
而实现者可以根据这个接口规范,做具体的实现。
这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。
而实现者可以根据这个接口规范,做具体的实现。
这样通过使用接口就可以快速的分离工作内容,达到团队并行工作的目的。
2.有利于程序拓展
如果规范是通过接口定义的,那么当你这个功能有多个实现时,你只要实现了这个接口,那么可以快速的替换具体实现,做到代码层面的完全可以分离。
接口和实现分离,面向接口编程。
通过接口来申明变量,可以让程序更具有扩展性,因为将来我们更方便替换接口的实现。
比如PostRepository
的getAll
方法可以返回List<Post>
,而不需要指定为具体的ArrayList<Post>
。这样将来如果我们希望返回LinkedList<Post>
的时候也无需修改接口。
而你所说的,直接写实现的方式在确定性的场景下当然也可以,不涉及到分工协作、变化性、测试方便等因素时,当然用不着接口了。比如一般情况下你犯不着为一个Pojo的getter和setter也弄个接口和实现分离。