public class InitTest5 {
public class Inner1 {
public void m() {
System.out.println("hello from inner 1");
}
}
public static class Inner2 {
public void m() {
System.out.println("hello from inner 2");
}
}
public static interface InnerInterface1 {
public void go();
}
public interface InnerInterface2 {
public void go();
}
public static void main(String [] args){
InitTest5 it = new InitTest5();
it.run();
//Inner1 in = new Inner1();
class MyClass extends Inner2{
public void m() {
System.out.println("hello from anon subtype of inner 1");
}
};
/*class MyClass1 extends MyStaticClass1{
public void m() {
System.out.println("hello from anon subtype of inner 1");
}
};*/
new Inner2 () {
public void m(){
System.out.println("hello from inner 2 again");
}
}.m();
new InnerInterface1 () {
public void go(){
System.out.println("go");
}
}.go();
new InnerInterface2 () {
public void go(){
System.out.println("go2");
}
}.go();
//int y = 9;
new MyObject1(){//y) {
public void go(){
System.out.println("anon of non inner class");
}
};
}
public void run(){
new Inner1 () {
public void m() {
System.out.println("hello from anon subtype of inner 1");
}
}.m();
new Inner2 () {
public void m() {
System.out.println("class to extend is inner static but not in static method");
}
}.m();
}
}
class MyObject1 {
public void go2(){
System.out.println("go2");
}
}