主要谈形式
1.接口 变量名 = new 接口(){方法实现/重写}
2.接口 变量名 = new 实现类/子类(){方法可以重写,也可以不写}因为实现类一定重写了接口的方法,但是你也可以继续重写
3.总之一句话,new 后面的类 要么是接口本身,要么是实现子类,因为要满足多态
而且,{},如果是 new 接口 那么一定要重写方法,但是如果是new 实现类 ,可以重写,可以不写,因为实现类已经重写了接口方法
例子:
Consumer consumer = new Consunmer(){一定实现全部抽象方法}
Consumer consumer(接口) = new DefaultConsunmer();这是实现类,可以不重写方法
Consumer consumer = new DefalutConsumer(){重写方法};实现类,也可以重写方法