怕什么真理无穷

导航

关于匿名内部类的简单理解

//先看一个内部类
interface Animal{
    void shout();
}
public class Example22{
    public static void main(String[] args){
        class Cat implements Animal{    //使用内部类实现接口
            public void shout(){
                System.out.println("Miaowu……");
            }
        }//内部类结束
        animalShout(new Cat());//new Cat创建对象,直接将将实例对象作为参数传入
    }
public static void animalShout(Animal an){
    an.shout();
    }
}
interface Animal{
    void shout();
}
public class Example23{
    public static void main(String[] args){
        animalShout(new Animal()//new Animal() 相当于创建了一个实例对象,并将对象传给animalShout方法
        {//从{开始,表示创建Animal的子类实例,该子类是匿名的,即没有名字,直接整个做为参数传入animalShout中,不需要起名,省掉了上文的Cat
            public void shout(){
                System.out.println("Miao miao");
            }
        });//animalShout()在此结束,()中创建了对象,并为对象包藏了方法
}
    public static void animalShout(Animal an){
    an.shout();
    }
}

 

posted on 2021-02-01 23:20  惭愧书生  阅读(77)  评论(0编辑  收藏  举报