Java中,适配器模式是用一个抽象类实现接口。。。。然后。。。可是我觉得不是抽象类也可以啊。。。 30

 我来答
GTA小鸡
高粉答主

2018-05-15 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

适配器不一定必须是抽象类,但写成抽象类至少有两个好处:

  1. 如果接口提供的方法很多,你不必每个都实现,而只用关注这个适配器要实现的核心功能,剩下的交给继承这个适配器的人去实现

  2. 强迫使用者去实现其中的每一个抽象方法,避免new一个没有意义的适配器类

实际上有很多适配器并不是抽象类,比如Swing/AWT中大多数Listener的Adapter类都是实例类,它们只是简单地将Listener接口中定义的方法实现为空方法。

追问
你说的那个好处。。实例类办不到吗?。?
???
百度网友eafd31e
2018-05-15 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:110
采纳率:70%
帮助的人:52.7万
展开全部
如果用接口,则在写实现类时需要实现所有的方法,而使用抽象类时只需要重写该适配器需要的方法。
追问
不使用抽象类,就是普通类来实现接口,再继承这个类,不也可以嘛
追答
如果你要这么做也不是不可以,适配器模式只是一种思想,你在实际开发中符合适配器模式设计思想就可以了。再个就是我个人理解,比如用一个普通类做适配器类型,这个类你也需要把所有的方法都有个完整的实现,另外用普通类也不如用接口或者抽象类更容易让人理解这里应该传递的是一个子类不同的实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式