匿名内部类与匿名对象的用法

定义

类是一个模板,一个对象是一个实例,正常情况下,类和对象都是有名字的,但是,在某些情况下,为了简化,类和对象是不需要名字的,这就是匿名类与匿名对象。

普通的类和对象

普通的类和对象,定义和调用方式如下,很简单。
类名 对象名 = new 类名;
对象名.方法名(参数);

public class Demo01 {
	public static void main(String[] args) {
		// 这是普通对象的调用方式
		Test01 test01 = new Test01();
		test01.cfun1("普通对象");
     }class Test01 {
	public void cfun1(String s) {
		System.out.println(s + ":Hello Object1");
	}
}

匿名对象的调用方式

匿名对象的调用方式,就一句话:
new 类名.方法名(参数);

public class Demo01 {
	public static void main(String[] args) {
		// 这是匿名对象的调用方式
		new Test01().cfun1("匿名对象");
	}
}
class Test01 {
	public void cfun1(String s) {
		System.out.println(s + ":Hello Object1");
	}
}

匿名内部类的定义方式及使用

匿名内部类一般是在通过覆盖重写接口或者抽象类的方法来定义的,使用方式可用普通对象的方式,也可以用匿名对象的方式。

public class Demo01 {
	public static void main(String[] args) {
	//匿名内部类定义
	 		Test02 test02= new Test02() {
			@Override
			public void ifun1(String s) {
				System.out.println(s + ":Hello Object2");
			}
		};
		test02.ifun1("匿名内部类");
		//匿名内部类定义+匿名对象使用
		new Test02() {
			@Override
			public void ifun1(String s) {
				System.out.println(s + ":Hello Object2");
			}
		}.ifun1("匿名内部类+匿名对象");
	}
}
interface Test02 {
	public void ifun1(String s);
}

输出结果

普通对象:Hello Object1
匿名对象:Hello Object1
匿名内部类:Hello Object2
匿名内部类+匿名对象:Hello Object2

版权声明:本文为qq_43648399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。