请写出以下程序运行结果:
package test;
public class Test {
public static void main(String[] args) {
Test t = new Test();
t.show(new Car(){
public void run(){
System.out.println("test run");
}
});
}
public void show(Car c){
c.run();
c.show();
}}
abstract class Car{
public void run(){
System.out.println("car run");
}
public void show(){
System.out.println(getClass().getName());
}}
参考答案如下:
test run
package.Test$1
解析:
第一个输出大家都能理解,不再解释。
第二个输出具体是什么意思呢?这里的package是主类所在的包名,如果没有包,则输出就是Test$1了;Test$1这个类名是编译器给它的名字(匿名类没有名字,但是java编译器要给他起个名,才好分辨)而命名的格式就是第一个Test类下面的匿名类的话就叫$1,若有第二个 ,那么第二个就是$2。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)