java学习--匿名内部类(二)

interface Inter{
    public abstract void display();
}

class Outer{
    public void method(){
        new Inter() {
            public void display(){
                System.out.println("display");
            }
        }
    }
}

这是这个匿名内部类:其中必须存在一个类(抽象类或者具体类)或者接口让外部类去重写它,在外部类的格式为:
new 类名或者接口名(){ 
    重写方法;
} 
匿名内部类的本质是一个继承了该类或者实现了该接口的子类的匿名对象。简言之,这是一个对象。

interface Inter{
    public abstract void display1();
    public abstract void display2();
}

class Outer{
    public void method(){
        Inner i = new Inter() {
            public void display1(){
                System.out.println("display1");
            }
            public void display2(){
                System.out.println("display2");
            }
        }
        i.display1();
        i.display2(); 
    }
}

当接口中有两个方法时,可以将匿名内部类赋值给一个接口,这是因为匿名内部类的本质是一个子类对象。

posted @ 2017-01-07 13:35  -DZY  阅读(29)  评论(0)    收藏  举报