Java 中抽象类能直接创建对象吗
不能。java 中的抽象类无法使用 new 关键字直接实例化,因为抽象类可能包含未实现的抽象方法,编译器不允许创建这种不完整的对象。

如何通过匿名内部类实现抽象类的实例化
可以通过匿名内部类的方式间接创建抽象类的对象。这种方式在创建时直接提供抽象方法的实现,生成一个继承自该抽象类的具体子类实例。

public class Main {
public static void main(String[] args) {
// 通过匿名内部类创建抽象类实例
Animal animal = new Animal() {
@Override
public void speak() {
System.out.println("Woof!");
}
};
// 调用方法验证
animal.speak();
}
}
abstract class Animal {
public abstract void speak();
}运行结果:
Woof!
立即学习“Java免费学习笔记(深入)”;
基于程序中某个输入、条件或结果的具体问题
在上述代码中,animal 变量的实际类型是匿名内部类生成的具体子类,而不是抽象类 Animal 本身。这意味着虽然变量声明为抽象类型,但运行时对象是完全具体的,可以正常调用已实现的方法。


















