上一节我们学习了内部类,这一节我们来学习匿名类。那什么叫做匿名类呢?顾名思义,匿名类就是不能有名字的类,它们不能被引用,只能在创建时用new语句来声明它们。
使用匿名内部类我们必须要继承一个父类或者实现一个接口。
需要注意的是:
1)匿名内部类中是不能定义构造函数的。
2)匿名内部类中不能存在任何的静态成员变量和静态方法。
3)匿名内部类为局部内部类,所以局部内部类的所有限制同样对匿名内部类生效。
匿名类语法格式如下:
classouterClass{//定义一个匿名类object1=newType(parameterList){//匿名类代码};}
注意:因为匿名类是表达式形式定义的,所以末尾以分号;来结束。
例如:
classDotcpp{publicvoiddisplay(){System.out.println(在Dotcpp类内部);}}classAnonymousDemo{publicvoidcreateClass(){//创建的匿名类继承了Dotcpp类Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out.println(在匿名类内部);}};d1.display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
运行结果如下:
在匿名类内部
例如:
interfaceDotcpp{publicvoiddisplay();}classAnonymousDemo{publicvoidcreateClass(){//创建的匿名类实现了Dotcpp接口Dotcppd1=newDotcpp(){publicvoiddisplay(){System.out.println(在匿名类内部);}};d1.display();}}classMain{publicstaticvoidmain(String[]args){AnonymousDemoan=newAnonymousDemo();an.createClass();}}
运行结果如下:
在匿名类内部
好了,大家可以上机实验,消化吸收本节内容。