本文共 570 字,大约阅读时间需要 1 分钟。
抽象类是不能被实例化的,抽象必须被继承,也就是只能实例化抽象类的子类。
但是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,如需转载请自行联系原作者