上次已经为大家介绍过java内部类是什么意思的主要内容,今天再来为大家介绍一些与之相关的知识,也就是java匿名内部类是什么意思?并且用实际的代码为大家展示。一起来看看吧。
首先,简述一下匿名内部类的概念
一个继承了类的子类的匿名对象,或者一个实现了接口的实现类的匿名对象。
开发中,最常用到的内部类就是匿名内部类了。以接口举例,当你使用一个接口时,得做如下几步操作。
1、定义子类
2、重写接口中的方法
3、创建子类对象
4、调用重写后的方法
我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。
条件:
匿名内部类必须继承一个父类或者实现一个父接口。
格式,代码展示如下:
new 父类名或者接口名() { // 方法重写 @Override public void method() { // 执行语句 } };
使用方式
以接口为例,匿名内部类的使用。
定义接口,代码展示如下:
public abstract class FlyAble { public abstract void fly(); }
创建匿名内部类,并调用,代码展示如下:
public class InnerDemo { public static void main(String[] args) { /* 1.等号右边:是匿名内部类,定义并创建该接口的子类对象 2.等号左边:是多态赋值,接口类型引用指向子类对象 */ FlyAble f = new FlyAble() { public void fly() { System.out.println("我飞了~~~"); } }; //调用 fly方法,执行重写后的方法 f.fly(); } }
通常在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递,代码展示如下:
public class InnerDemo2 { public static void main(String[] args) { /* 1.等号右边:定义并创建该接口的子类对象 2.等号左边:是多态,接口类型引用指向子类对象 */ FlyAble f = new FlyAble() { public void fly() { System.out.println("我飞了~~~"); } }; // 将f传递给showFly方法中 showFly(f); } public static void showFly(FlyAble f) { f.fly(); } }
以上两步,也可以简化为一步,代码如下:
public class InnerDemo3 { public static void main(String[] args) { /* 创建匿名内部类,直接传递给showFly(FlyAble f) */ showFly(new FlyAble() { public void fly() { System.out.println("我飞了~~~"); } }); } public static void showFly(FlyAble f) { f.fly(); } }
以上就是关于java匿名内部类是什么意思的主要内容了。并且用实际的代码为大家展示出来。如果你对java知识感兴趣,想要了解更多java实例以及常见问题,敬请关注奇Q工具网。
推荐阅读: