Java的interface是什么?我想很多人都会给出很多解释其存在即合理的缘由。

我觉得interface更像是一种类的身份标记。Java是没多继承的,但可以实现多接口。一般对于每个接口都会有处理它的类或接口,而在它们的行为范围以内,所要需要处理的实例即使实现了1k个接口,也仍然只是它们可以处理的那个接口的实现,这就使得对系统的分析更容易专注于某一点,而因为Java类可以实现多接口,又不至于让整个系统变得过度设计。

在实际应用中,分离出某些关注点的处理interface时甚至让我有一种使用AOP的错觉,当然,interface再好也是在OOP的圈子中,还是不能完成AOP的大任的。