A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hello_Boys 中级黑马   /  2014-12-29 20:37  /  446 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

没有使用匿名内部类:
interface A {
        public void printinfo();

}

class B implements A {

        @Override
        public void printinfo() {
                System.out.println("Hello World!");

        }

}

class C {
        public void fun1() {
                fun2(new B());
        }

        public void fun2(A a) {
                a.printinfo();

        }
}

public class niminglei {

        public static void main(String[] args) {
                C c = new C();
                c.fun1();

        }

}
接口的实现只使用一次,那么就没必要单独定义一个子类B,此时使用匿名内部类是这样:
interface A {
        public void printinfo();

}

class C {
        public void fun1() {
                fun2(new A() {

                        @Override
                        public void printinfo() {
                                System.out.println("Hello World!");
                        }

                });
        }

        private void fun2(A a) {
                a.printinfo();

        }

}


public class niminglei {

        public static void main(String[] args) {
                C c = new C();
                c.fun1();

        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马