Использование определений классов внутри метода в Java
Пример:
public class TestClass {
public static void main(String[] args) {
TestClass t = new TestClass();
}
private static void testMethod() {
abstract class TestMethod {
int a;
int b;
int c;
abstract void implementMe();
}
class DummyClass extends TestMethod {
void implementMe() {}
}
DummyClass dummy = new DummyClass();
}
}
Я обнаружил, что приведенный выше фрагмент кода является абсолютно законным в Java. У меня есть следующие вопросы.
Какой смысл когда-либо иметь определение класса внутри метода?Будет ли создан файл класса дляDummyClass
Мне трудно представить эту концепцию в объектно-ориентированной манере. Наличие определения класса внутри поведения. Вероятно, кто-то может рассказать мне с помощью примеров из реального мираАбстрактные классы внутри метода звучат для меня немного безумно. Но интерфейсы не допускаются. Есть ли причина этого?