声明定义的接口: 主体类: 其中接口作为成员变量,在这个主体类的成员方法中调用了这个接口的抽象方法,会自动找到这个这个接口实现类的覆盖重写的方法,避免多个实现类不同的覆盖重写,所以如果用实现类类实现的话都是直接传参该实现类就行: 其中,用实现类的时候,入参为接口的时候直接传入它的实现类,jvm会自动实现向上转型,继承和实现都有向上转型,原理可以看作一样:但是java是单继承.多实现的: 实现类只使用了一次,可以使用匿名内部类: 匿名内部类创建出来的对象也只调用了一个方法,可以使用匿名内部类的匿名