这篇不转载了,自己来写,因为匿名内部类是内部类系列里我认为最难理解的。
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 出实例呢?一定是他们的子类。
内部类学习笔记(三)匿名内部类,布布扣,bubuko.com
时间: 2024-10-21 06:32:33