mad*_*y d 2 java abstract-class
我只是对抽象类概念感到困惑.请清除我的怀疑.Abstract类的定义说我们不能创建这样的类的对象,然后我们称之为A a=new A(){ }.示例如下
public abstract class AbstractTest {
public abstract void onClick();
public void testClick(){
}
}
public class A {
AbstractTest test = new AbstractTest(){
@Override
public void onClick() {
}
};
}
Run Code Online (Sandbox Code Playgroud)
那么test是一个对象还是什么?
test是一个匿名具体子类的对象AbstractTest(注意它实现了所有的抽象方法AbstractTest),这就是为什么可以实例化这个子类的原因.
另一方面,
AbstractTest test = new AbstractTest();
Run Code Online (Sandbox Code Playgroud)
不会通过编译,因为这将是一个实例化抽象类的尝试.