A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Java1211张美红 中级黑马   /  2015-12-28 15:19  /  274 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class NoNameInnerClass {
        public static void main(String[] args) {

                Outer.method().show();

                PersonDemo pd = new PersonDemo();
                //参数是抽象类,因为抽象类无法直接new,所以,通过匿名内部类,实例化一个子类对象
                //Person p = new Person(){//重写方法体};       这是有名字的
                //new Person(){//重写方法体};                  这是匿名的子类,而且位于NoNameInnerClass类内部,所以称为匿名内部类
               
                pd.show(new Person(){   
                        public void show(){
                                System.out.println("你好啊!");
                        }
                });
        }
}
//抽象类
abstract class Person {
        public abstract void show();
}
//匿名内部类:继承该类或实现接口的子类,并且实例化子类对象
//某个类中的某个方法的参数是抽象类,抽象类不能直接实例化,所以,可以通过匿名内部类实例化子类对象
class PersonDemo {
        //show方法的参数是抽象类
        public void show(Person p){
                p.show();
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马