首页 > 代码库 > 匿名内部类

匿名内部类

匿名内部类:没有类名的类就称作为匿名内部类

匿名内部类的好处:简化书写。

匿名内部类的使用前提:必须存在继承或者实现关系才能使用。

//继承:    简单使用:    abstract class Animal{        public abstract void run();    }    //匿名内部类:匿名内部类只是没有类名,其他的一概成员都是具备的。    //匿名内部类与Anumal是继承的关系。目前创建Anmail子类对象        new Animal(){            //匿名内部的成员            public void run(){                System.out.println("狗在跑!!");            }            //特有的方法            public void bite(){                System.out.println("狗在咬人");            }        }.run();    多态配合使用:    class Animal {        public abstract void run();                public abstract void sleep();    }        Animal a = new Animal(){            public void run(){                System.out.println("猫在跑!");            }                        public void sleep(){                System.out.println("猫在睡觉!");            }                        //特有的方法 就不要用匿名内部类了                    };                a.run();                a.sleep();//实现    interface Dao{        public void run();    }    class Outer{        public void print(){            new Dao(){//创建接口实现类的匿名内部类                public void run(){                    System.out.println("执行成功");                }            }.run();        }    }    class Demo{        public static void main (String[] args){            Outer out = new Outer();            out.print();        }    }    匿名内部类一般用于实参。    interface Dao{        public void run();    }    class Demo2{        public static void main(String[] args){            test(new Dao{                public void run(){                    System.out.println("测试跑步成功");                }            });        }                public static void test(Dao d){            d.run();        }    }

 

匿名内部类