JAVA 策略设计模式,为什么抽象策略类必须是一个抽象类,而不能是一个接口?

图片说明

可以是接口。但是GoF的书是按照C++写的,而C++没有接口,只有抽象类。很多人照抄到Java,还是用的抽象类。

而且作为Java,如果是Java 7或者以前,最好的做法就是用接口,因为Java不支持多继承。而Java 8,最好用Lambda表达式。

抽象类的作用在于多个类都需要用到的时候,提供方便,在开发中更加高效开发

可以使用接口的啊,建议楼主找一个用Java讲设计模式的,我学习的时候是看“大话设计模式”这本书,用C#写的,
我在自己的csdn博客有专题讲设计模式的,算是一个学习笔记吧,楼主可以看一下。
zw0283设计模式专题之策略模式