匿名内部类的两种场景的写法

使用匿名内部类的目的:因为接口和抽象类都不能实例化对象,
使用匿名内部类的方式构造接口、实例化对象(只要是抽象的,不管是抽象类还是接口,都可以通过匿名内部类的方式访问)




情况一: 接口、抽象类使用:相当于不用特意去写一个类去实现这个接口的方法,直接在实例化的时候就写好这个方法(接口、抽象类不能实例化,所以采用匿名内部类的方式来写)


接口用匿名内部类:

匿名内部类的两种场景的写法


抽象类用匿名内部类:

匿名内部类的两种场景的写法


情况二:当接口作为参数放在方法体里的时候,用new 接口()的方式来实例独享,则匿名内部类必须要实现这两个方法,如下

这是接口:

匿名内部类的两种场景的写法


PS:其实这种使用匿名内部类的方式等同于,定义一个蘑菇类,实现水果结构的getName() 和panlt() 方法,然后农民类父类引用指向子类,也可以达到同样的效果。