本帖最后由 涂金哲 于 2012-7-31 14:55 编辑
package com.cn.tt;
abstract class T{
int a;
abstract void test();
T(int a){
this.a=a;
}
}
public class Test{
int a=1;
public static void main(String[] args)
{
new T(6){
//int a=3;
void test(){
System.out.println("heheheh"+a);
}
}.test();
}
}
抽象类可以有构造器用来初始化数据,由于有抽象方法所以不可以直接通过new
关键字来创建对象。在Test类中创建了 new T(6){ ……} 这个 没有引用对象,类型应该是子类类型吧?还能调用test
()方法?test()方法访问了抽象类中的数据a,main方法是静态的,匿名对象怎么能成功访问到非静态的数据?这是怎么样的一个过程?
|