内部类(3)
匿名内部类
如果接口的实现类(或者是父类的子类)只使用唯一的一次,那么这种情况下就可以
省略该类定义,而使用匿名内部类。
定义格式:
接口名(父类名) 对象名 = new 接口(父类)名(){
//覆盖重写所有抽象方法
};
格式解析:
1.new 代表创建对象的动作;
2.接口名是匿名内部类需实现那些接口;
3.{...}是匿名内部类的内容
ps ;匿名内部类在创建对象时只能使用唯一的一次
匿名内部类省略的是实现类/子类,匿名对象省略的是对象名
定义一个接口
public interface forAnonymous { public abstract void method(); }
使用匿名内部类去实现接口
public class Anonymous { public void nomethod(){ forAnonymous non = new forAnonymous() { @Override public void method() { System.out.println("匿名内部类覆盖重写了接口方法"); } }; non.method(); }
使用匿名内部类
public static void main(String[] args){ Anonymous anony = new Anonymous(); anony.nomethod();//使用匿名内部类 }