java1234开源博客系统
博客信息

Java面向对象-匿名内部类

发布时间:『 2016-10-20 15:19』  博客类别:Java核心基础  阅读(6883) 评论(0)

Java面向对象-匿名内部类


内部类前面我们讲过了 就是类的内部再定义类;

匿名内部类 这里指的是实例化内部对象 就是没有名字的内部类;


作用:假如某个类只使用一次,则可以使用匿名内部类;


我们来看一个具体实例:

先定义一个接口:

package com.java1234.chap03.sec16;

public interface A {

	public void a();
}


在定义一个具体实现类:

package com.java1234.chap03.sec16;

public class B implements A{

	@Override
	public void a() {
		System.out.println("a方法");
	}

}


我们来写个简单的测试类:

package com.java1234.chap03.sec16;

public class Test {

	public void test(A a){
		a.a();
	}
	
	public static void main(String[] args) {
		Test t=new Test();
		t.test(new B());
		
		
	}
}


运行输出:

a方法



假如,我们这个地方仅仅调用一次一个test,并且没有A接口的具体实现类,这时候,匿名内部类就派上用场了;

package com.java1234.chap03.sec16;

public class Test {

	public void test(A a){
		a.a();
	}
	
	public static void main(String[] args) {
		Test t=new Test();
		t.test(new B());
		
		// 匿名内部类
		t.test(new A(){

			@Override
			public void a() {
				System.out.println("匿名内部类,一次性使用");
			}
			
		});
	}
}

运行输出:

a方法

匿名内部类,一次性使用


这里我们直接new 接口名字即可 然后写上实现方法  之所以说匿名内部类,我们这里压根没有定义类似 A a=new B()的a对象;



关键字:   java     匿名内部类  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有