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