Я не верю, что вы можете. Вам нужно будет создать интерфейс или подкласс. (Ну, ладно, это, вероятно, не так Вы могли бы сделать это с отражением.).
Например, как это (где вы называете его через test.m()
после окончания строительства):
public class Test1 {
public static void main(String[] args) {
SubTest1 test = new SubTest1() {
public void m() {
System.out.println("m");
}
};
test.m();
}
private static abstract class SubTest1 extends Test1 {
public abstract void m();
}
}
Или, как это, где это происходит во время строительства:
public class Test1 {
public static void main(String[] args) {
SubTest1 test = new SubTest1() {
public void m() {
System.out.println("m");
}
};
}
private static abstract class SubTest1 extends Test1 {
public SubTest1() {
this.m();
}
public abstract void m();
}
}
You can't define an anonymous class constructor, так что последний использует конструктор SubTest1
класса и абстрактного метода.
Это звучит как вы злоупотребляете анонимными классами. – SLaks
@DanW: 'test.m()' не будет работать. –
'Test1 test = new Test1() { public Test1 m() { System.out.println (" m "); return new Test1(); } } .m(); ' – Lion