Java 这种类型的初始化称为什么?为什么使用它?
Animal在这里是一个用户定义的类Java 这种类型的初始化称为什么?为什么使用它?,java,Java,Animal在这里是一个用户定义的类 Animal D = new Animal("Leo") { @Override public void makeNoise() { System.out.println("Roar!"); } }; D.makeNoise(); 它被调用,用于同时定义类和任何重写的方法。它被调用,用于同时定义类和任何重写的方法。这是一个匿名类。有关匿名类及其用途的详细信息,请参阅关于匿名类。这是一个匿
Animal D = new Animal("Leo") {
@Override public void makeNoise() {
System.out.println("Roar!");
}
}; D.makeNoise();
它被调用,用于同时定义类和任何重写的方法。它被调用,用于同时定义类和任何重写的方法。这是一个匿名类。有关匿名类及其用途的详细信息,请参阅关于匿名类。这是一个匿名类。有关匿名类及其用途的详细信息,请参阅关于匿名类。这用于覆盖初始值
Animal.makeNoise()
方法,该方法仅用于此实例。这用于覆盖初始值
Animal.makeNoise()
“定义类”:其中“类”是由
new
命名的类(或接口)的子类。因此,它在这里不是实例化Animal
,而是一个匿名子类实例。现在,对于单方法接口,它有一个更简洁的扩展(可能不适用于这里,但如果您使用Java8,最好了解一下)。“定义类”:其中“类”是由new
命名的类(或接口)的子类。因此它在这里不是实例化Animal
,而是一个匿名子类实例。