近期发现一些老平台上的接口中的方法,几乎都标识为抽象方法,接口中又不能提供默认的实现,那这种做法的作用是什么?
1、接口 纯抽象,规约/规范/约定, 用来声明行为。 比如Servlet
2、抽象类,目的是代码复用,把一些子类可以用的代码提取到抽象类复用;比如Struts2的ActionSupport,比如HttpServlet等等
接口就是一种规范,实现类必须实现这种规范,进行开发。方法内部的业务可以不同,但是返回值和参数必须相同。
应该是当时写的人说好的约定吧,没什么特别作用。接口中的方法本来就是默认是abstract的。
对于接口来说(Interface,不是abstract class)是否添加abstract关键字实际上是没有区别的,但是Java的语法里面却没有禁止这样做,可能是考虑大家的使用习惯(有些人习惯性的在方法前面加abstract),也可能是考虑语法检查的复杂度(与普通的类的方法定义采用相同的语法检查逻辑)