Java中用匿名内部类实现实例化抽象类

抽象类是不能被实例化的,抽象必须被继承,也就是只能实例化抽象类的子类。

但是Java中有一段有趣的功能。

比如:

public abstract class MyAbstractclass {}

MyAbstractclass是一个抽象类。可以在Main方法中实例化这个抽象类。

MyAbstractclass my=new  MyAbstractclass() {};

其实这只是一个假象,而且和普通的对象实例化的写法也不同,后面带有一对{} 。

其实这个写法是匿名内部类的用方法。 匿名类是没有有名称的类,创建时,使用new语句的一部分来声明。因此上面的代码其实声明了一个匿名类,然后这个匿名类继承了抽象类MyAbstractclass。因此{}中可以写这个类的实现细节。

使用System.out.println(my.getClass().toString());得到这个匿名类的类型为class mytest.mytestpkg.Tj$1。

具体可以参考:http://blog.csdn.net/liupeng900605/article/details/7723529

















本文转自cnn23711151CTO博客,原文链接: http://blog.51cto.com/cnn237111/1131550,如需转载请自行联系原作者







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值