java中为什么说匿名内部类只能使用一次

java中为什么说匿名内部类只能使用一次

首先了解一下类和对象(实例)的概念:
类:类是一个模板,是个抽象的概念,用来模拟一类事物,一旦定义了一个类,这个类就永远存在。在写代码的时候,我们都会写各种类,一般普通的类都会有类名,通过类名来创建实例。
对象:对象是类的一个实例,通常我们会通过new来创建一个类的实例,即对象。
为什么要先区分类和对象(实例)的概念?
因为这里所说的匿名内部类只能使用一次,注意是说匿名内部,而不是说对象,指向匿名内部类的对象可以使用多次。

Animal al = new Animal() {			
		@Override
		public void eat() {
			System.out.println("某种动物吃啥来");
		}
	};

如上面代码所示,匿名内部类的实例(对象)al可以多次使用,但是匿名内部类(指下面这部分),只能使用一次

new Animal() {			
		@Override
		public void eat() {
			System.out.println("某种动物吃啥来");
		}
	};

通过以上分析,可以得出普通类可以使用多次,为什么内部类只能一次?
首先了解下匿名内部类的定义:
匿名类: 顾名思义是没有类名的内部类,由于没有名字,所以匿名类只能使用一次,它一般专用于处理某个任务,简化代码编写。
由于普通的类有类名,如:public class Amimal{…},使用时Animal al = new Animal();可根据这个Animal类名多次new使用,创建实例,Animal类的代码在new时是固定的。
而匿名内部类没有类名,每次使用时,都要new 类名(){…};这里的代码不是固定的,每次都可以变化,故只能用一次。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值