接口作为成员变量——实现类和匿名内部类和匿名对象

声明定义的接口:

 

主体类:

其中接口作为成员变量,在这个主体类的成员方法中调用了这个接口的抽象方法,会自动找到这个这个接口实现类的覆盖重写的方法,避免多个实现类不同的覆盖重写,所以如果用实现类类实现的话都是直接传参该实现类就行

 

 

其中,用实现类的时候,入参为接口的时候直接传入它的实现类,jvm会自动实现向上转型,继承和实现都有向上转型,原理可以看作一样;但是java是单继承、多实现的;

实现类只使用了一次,可以使用匿名内部类;

匿名内部类创建出来的对象也只调用了一个方法,可以使用匿名内部类的匿名对象;

posted @ 2019-04-04 14:09  wmqiang  阅读(1329)  评论(0编辑  收藏  举报