您的位置:首页 > 其它

内部类学习笔记(三)匿名内部类

2014-06-29 21:05 253 查看
这篇不转载了,自己来写,因为匿名内部类是内部类系列里我认为最难理解的。
A、继承式的匿名内部类。

引用转载代码:

结果输出了:Driving another car! Car引用变量不是引用Car对象,而是Car匿名子类的对象。

建立匿名内部类的关键点是重写父类的一个或多个方法。再强调一下,是重写父类的方法,而不是创建新的方法。因为用父类的引用不可能调用父类本身没有的方法!创建新的方法是多余的。简言之,参考多态。

这里可能大家看的比较迷糊,尤其是

Car car = new Car(){            public void drive(){                System.out.println("Driving another car!");            }        };


那么我来解释一下这段代码:他相当于

他们的区别在于 xxx这个名字在这里是不需要的。

B、抽象类式和接口式的匿名内部类。

上述是抽象类式的代码,接口的同抽象类的几乎一模一样,只是把abstract 换成interface。

C、参数式的匿名内部类

引用转载代码:

如果你能把前A、B都搞清楚,这里就无需解释了。

总结:匿名内部类的核心就是“继承”与“实现”,因为内部类没有构造方法,因此内部类的初始化只有“代码块”。

你只要想,抽象类和接口怎么会new 出实例呢?一定是他们的子类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: