为什么接口明明没有方法体,但是还有方法描述? RT,明明接口里面只有方法的声明,没有具体的方法体内容,需要具体的实现类来实现接口的方法,那为什么接口的方法却有一大段的描述文档,就好像已经知道了方法体一样? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 咋说呢,我有个接口,里面有个方法是这个kdjaflkjdsalk,这个方法你准备怎么实现? Java是一门面向对象的静态单分派语言,Java使用的是契约式设计,所以接口本身就是契约的描述,而实现者通过实现接口契约完成功能,调用者只要关注接口类型提供的方法签名就能找到一个正确的实现者。举个例子:使用spring框架,大家都知道要实现一个叫做ApplicationContextAware的接口,那么只要从spring容器中获取该接口的一个引用就可以获得ApplicationContext对象。而spring容器就是根据ApplicationContextAware接口类型来实现发现并进行注册。在比如jpa提供一个基本的接口,那么你就可以定义个业务接口进行继承,然后容器类库会动态组装一个接口的实现。你不需要关注他的实现方式,你要的是结果。那么接口声明的模式就可以解耦实现和调用。所以接口的说明就是契约式设计的核心。这和动态语言的能力式设计是不同的。 关于super()方法的使用 java多线程的同步问题 SWT中如何动态加载容器 数据结构 分析“对象的实例”的理解问题 问个Java的格式问题? 如何写ftp程序 请教 java List 泛型转换 一个和数据库和java有关的问题 如何实现用javascript调用EXE文件? 新手小白 关于使用数组编写的超市程序(大佬救救萌新吧TAT)
调用者只要关注接口类型提供的方法签名就能找到一个正确的实现者。
举个例子:使用spring框架,大家都知道要实现一个叫做ApplicationContextAware的接口,那么只要从spring容器中获取该接口的一个引用就可以获得ApplicationContext对象。而spring容器就是根据ApplicationContextAware接口类型来实现发现并进行注册。
在比如jpa提供一个基本的接口,那么你就可以定义个业务接口进行继承,然后容器类库会动态组装一个接口的实现。你不需要关注他的实现方式,你要的是结果。那么接口声明的模式就可以解耦实现和调用。
所以接口的说明就是契约式设计的核心。这和动态语言的能力式设计是不同的。