本帖最后由 sangyuan 于 2015-8-19 12:00 编辑
刚登录看见~~ 匿名内部类我也是刚学,把我理解的给你说一下吧,仅供参考。你这个程序中匿名内部类的格式写错了,匿名内部类的格式:new 父类名或者接口名(){定义子类成员或者覆盖父类方法}.方法。 - new Inter() {
- public void method() {
- System.out.println("method");
- }
- }.method();
复制代码 下面用一个小程序来给你说说匿名内部类一般什么时候用,以及用的好处;
- /*
- 所有父类或者父接口出现的地方,完全可以用子类对象替代。
- */
- interface Animal
- {
- public abstract void eat();
- }
- //方式一:普通的方法,创建一个Dog类来实现接口Animal的show方法,然后在下面测试类中,再创建一个对象来调用这个方法
- /*
- class Dog implements Animal
- {
- public void eat()
- {
- System.out.println("eat dog");
- }
- }
- */
- class Test
- {
- //一个方法的形式参数是接口(抽象类)
- public void show(Animal a) //Animal a = new Dog();
- {
- a.eat();
- }
- }
- class AnimalTest
- {
- public static void main(String[] args)
- {
- Test t = new Test();
- //Dog d = new Dog();
- //t.show(d);
-
- //方法二:使用匿名内部类,这样就不用再创建类,也不用再测试类中创建对象,需要注意的是,在这儿,匿名内部类是作为show方法里的参数进行传递的。你那个程序是在通过匿名内部类建立一个Inter的子类对象
复制代码 不知道对你有帮助没? 这是我自己的理解,如果哪点儿说的不对,也希望看到的大神们帮忙指正!!! |