我只是对抽象类的概念感到困惑。请解开我的疑惑。 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();
不会通过编译,因为那会尝试实例化一个抽象类。
关于java - 我们可以创建一个抽象类的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994009/