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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

chen陈

初级黑马

  • 黑马币:37

  • 帖子:11

  • 精华:0

© chen陈 初级黑马   /  2016-9-4 16:49  /  479 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

最近安卓基础班学习了内部类的知识,对于匿名内部类不甚了解,望大神指导

6 个回复

倒序浏览
视频说匿名内部类是一个继承了该类或者实现了该接口的子类匿名对象
回复 使用道具 举报
谁能帮忙解释一下 = = 菜鸟在线等
回复 使用道具 举报
还有就是格式知道怎么用,但是对于应用的情景还是不怎么清楚.
回复 使用道具 举报
相当于一个接口或父类的 子类对象,然后可以直接调用子类的方法
回复 使用道具 举报
匿名内部类,就是有一个继承或者实现接口的形式。
比如开一条线程首先是new Thread();,然后再后面加上一个大括号,就是有一个继承了Thread的匿名内部类。
new Thread(){};
大括号里可以重写父类的方法
new Thread(){
public void run(){}
};    这样一个匿名内部类就出来了。还有问题我们可以互相交流
回复 使用道具 举报
它本质就是一个对象,编译的时候看左边,运行看右边,用它调方法就是调用的它重写的方法
interface Play{                  //这是一个接口
        void playGame(); //里面是一个抽象方法.注意:此时该抽象方法的默认修饰符为public abstrat
}

class Demo1{                        //定义一个类
        public static void main(String[] args){        //主方法,程序的入口
                 Demo1.method().playGame();                        //通过类名调用方法
        }

        public static Play method(){                        //这是一个静态方法
                return new Play(){                                        //返回一个对象
                        public void plagGame(){
                                System.out.println("PlayGame");
                        }
                };
        }
}

就像以上Demo,Demo1.method().playGame();这句可以看成
Play p = Demo1.method();//多态
p.playGame();//编译看左边,运行看右边,实际运行的是改匿名内部类重写的方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马