Я видел несколько примеров, подобных этому в Java, и я надеюсь, что кто-то сможет объяснить, что происходит. Кажется, что новый класс можно определить встроенным, что кажется мне очень странным. Ожидается первая строка распечатки, так как это просто toString. Однако второй, похоже, функция может быть переопределена inline. Есть ли для этого технический термин? Или любая документация, которая углубляется? Спасибо!
Если у меня есть следующий код:
public class Apple {
public String toString() {
return "original apple";
}
}
public class Driver {
public static void main(String[] args) {
System.out.println("first: " + new Apple());
System.out.println("second: " +
new Apple() {
public String toString() {
return "modified apple";
}
}
);
}
}
Выходы кода:
first: original apple
second: modified apple