//匿名内部类:“ //如果是重写接口或者抽象类的方法,可以通过对象直接调用,不能在重写后面直接调用 //如果是新建一个方法,就必须在匿名内部类后面直接调用,不能通过对象调用 //匿名内部类是一个子类对象,当用Object的obj引用指向时,就被提升为了Object类型,而编译时会检查Object类中是否有show方法,此时编译失败。 interface tt{ public abstract void eat(); } public class Test { public static void main(String[] args) { tt t = new tt(){ public void eat(){ System.out.println("tt"); } }; //下面这样是会报错的 // tt t = new tt(){ // public void eat(){ // System.out.println("tt"); // } // }.eat(); t.eat(); new Object(){ public void show(){ System.out.println("show方法"); } }.show(); //下面报错,不能赋给Object obj // Object obj = new Object(){ // public void show(){ // System.out.println("show方法"); // } // }.show(); } }