Java匿名内部类

概念:

匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

注意事项:

& 编译后的文件命名:外部类$数字 . class

& 无法使用 publicprivateabstractstatic 修饰,匿名内部类不能出现抽象方法

& 无法编写构造方法,但可以添加构造代码块

& 不能出现静态成员

& 匿名内部类可实现接口也可以继承类,但是不可兼得

& 匿名内部类不能是抽象的,它必须要实现继承的类或者实现接口的所有抽象方法

匿名内部类初始化:

我们一般都是利用构造器来完成某个实例的初始化工作的,但是匿名内部类是没有构造

器的,那怎么来初始化匿名内部类呢?使用构造代码块!利用构造代码块能够达到为匿名内

部类创建一个构造器的效果。

实例:

实例:

匿名内部类可以有不同的表现形式,下面用实例向大家展示一下:

继承式的匿名内部类:

引用变量不是引用 Car 对象,而是 Car 匿名子类的对象。

建立匿名内部类的关键点是重写父类的一个或多个方法。再强调一下,是重写父类的方

法,而不是创建新的方法。因为用父类的引用不可能调用父类本身没有的方法,创建新的方

法是多余的。

接口式的匿名内部类:

上面的代码很怪,好像是在实例化一个接口。事实并非如此,接口式的匿名内部类是实

现了一个接口的匿名类。而且只能实现一个接口。

参数式的匿名内部类

由上面的三个例子可以看出,只要一个类是抽象的或是一个借口,那么其子类中的方法

都可以使用匿名内部类来实现。最常用的情况就是在多线程的实现上,因为要实现多线程必

须继承 Thread 类或是实现 Runnable 接口

Thread 类的匿名内部类实现:

Runnable 接口的匿名内部类实现:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值