tinguo002的gravatar头像
tinguo002 2018-06-01 15:37:07

为什么java定义对象的一组操作使用的是接口,而不是类

为什么定义对象的一组操作使用的是接口,而不是类

或者这样讲,为什么User.java的操作集合定义在 public interface IUserService{} 中,可以定义在 public class UserService{}中么?

我本人在面向对象的设计过程中,操作也都是定义在接口中,但是突然发现这个问题我并不能向别人表述清晰。

也许大家会说,接口有多个实现类,根据不同的需求指定不同的实现类,程序更容易扩展。但这并不能说服我,原因如下,
接口可以有多个实现类,但是接口实例化的时候需要指定具体实现类。
UserService也有多个并行的类,在不同的需求时,选择不同的类,效果也一样。

所有回答列表(6)
IT界小蚂蚁的gravatar头像
IT界小蚂蚁  LV6 2018年6月4日

接口只是定义的一套规范,以面向接口编程。把锁有公共的方法抽取出来,可以达到代码重用

snailfly518的gravatar头像
snailfly518  LV2 2018年6月4日

重用的最高境

话不多的程序员的gravatar头像
话不多的程序员  LV18 2018年6月5日

想怎么写就怎么写,先写出来,在封装,调试。

宛若重生的gravatar头像
宛若重生  LV19 2018年6月5日

接口多用于描述各个类型的对象间所共有的行为,所有实现了这个接口的类的对象都能这么干。

接口是一种能力的描述,能做什么,是一组功能或者方法的集合。

醉美猴王的gravatar头像
醉美猴王  LV16 2018年6月6日

@夏婴静  说的好

heyufei_007的gravatar头像
heyufei_007  LV3 2018年6月8日

接口可以定义一套规范,所有的实现类按照这套规范添加方法,编译时使用接口定义变量,并调用接口,不用考虑具体怎么实现,运行时选择实际的实现类对象进行执行,这样想要切换实现类时客户代码不用修改只需更换实现类即可。面向接口编程,降低耦合。例如JDBC编程和日志框架都是这种原理,一家之言欢迎讨论...

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友