在劫

吾生也有涯,而知也无涯 。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
//匿名内部类:“
//如果是重写接口或者抽象类的方法,可以通过对象直接调用,不能在重写后面直接调用
//如果是新建一个方法,就必须在匿名内部类后面直接调用,不能通过对象调用
//匿名内部类是一个子类对象,当用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();        
    }
}

 

posted on 2017-06-20 03:32  长嘴大耳怪  阅读(93)  评论(0编辑  收藏  举报