如果接口的实现类(或者是父类的子类)只需要使用唯一的一次,那么这种情况下就可以省略掉该类的定义,改为使用【匿名内部类】
匿名内部类的定义格式:
接口名称 对象名 = new 接口名称(){
//覆盖重写所有抽象方法
}
优点:
省略一个类的单独定义
注意事项:
对格式“new 接口名称{...}”进行解析
1.new代表创建对象的动作
2.接口名称就是匿名内部类需要实现哪个接口
3.{...}才是匿名内部类的内容
*1.匿名内部类在创建对象的时候只能使用一次,如果希望多次创建对象,而且类的定义一样,就必须重复的代码多写几次了。
*2.匿名对象在调用方法的时候,只能调用唯一一次方法,如果在使用匿名类时同时使用匿名方法,希望同一个对象,调用多次方法,必须要起一个名字。
*3.匿名内部类是省略了实现类或者子类名称,但是匿名对象省略了对象名称
强调:匿名内部类和匿名对象不是一回事!