我只是对抽象类概念感到困惑。请清除我的怀疑。 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() {
}
};
}
那么
test
是对象还是什么? 最佳答案
test
是AbstractTest
匿名具体子类的对象(请注意,它实现了AbstractTest
的所有抽象方法),因此可以实例化此子类。
另一方面,
AbstractTest test = new AbstractTest();
不会通过编译,因为那是实例化抽象类的尝试。