首页 > 编程知识 正文

java内部类有什么用,什么叫匿名内部类

时间:2023-05-06 08:55:41 阅读:62803 作者:2623

匿名内部类匿名内部类是指未命名的嵌套类。 这是Java定义类的方法之一。

为什么要在实际开发中使用匿名内部类,3358www.Sina.com/方法的一个接口/类的是程序中的某个实现方式,为了使用它

详细说明一下吧

假设现在有一个接口。 接口只有一种方法

publicinterfaceinterface 01 { voidshow (; }要使用此接口的show方法,必须创建一个实现类,并说明如何具体实现show方法

public class interface 01 implimplementsinterface 01 { @ overridepublicvoidshow . system.out.println (I ' maimplclass )。 }如果只使用一次类接口01i mpl的所有进程,为这次使用创建类就太麻烦了。 我们需要一种摆脱这种困境的方法。 匿名内部类可以很好地解决这个问题。

我们使用匿名的内部类

publicstaticvoidmain (string [ ] args )接口01接口01=new接口01 ) { @Override public void show ) }系统; //接口方法调用接口01.show (; }正常执行的结果

这里使用了匿名内部类

如何使用匿名内部类的基本格式

new接口/类名(参数1、参数2…) (实现方法1 ()实现方法2 ) )…); 在上述使用中,我们在不创建实现类的情况下实现了具体的show方法。 还定义了接口的对象变量interface01。 研究表明,该变量与平时使用多态性后的使用方法没有变化。

通常,您也习惯于以这种方式创建和启动线程

newthread(newrunnable ) ({ @Override public void run ) ) { System.out.println,我是线程); () ).start ); 常见问题匿名内部类是如何实现的

编译上述代码后,请检查class文件的路径

试着反编译一下

现在,匿名内部类在编译时生成名称以$编号结尾的class文件,即只会执行一次,并发现只有编译前(java文件)是匿名形式。

匿名内部类只能在接口上使用吗

不。 匿名内部类可以用于具体类、抽象类和接口,不需要方法的数量。

作为例子,假设存在具体类Class01、抽象类AbstractClass01、接口接口01

//具体类public class class 01 { public void show (strings ) { System.out.println (等) } ); }//抽象类publicabstractclassabstractclass 01 { abstractvoidshow (strings ); //接口publicinterfaceinterface 01 { voidshow (strings ); }测试类TestInner

public class testinner { publicstaticvoidmain (string [ ] args )//如何重写具体类(new Class01 ) }@overridepublicvoidshow ) strrgs //重写抽象类的抽象方法new AbstractClass01 () overridevoidshow ) strings ) { System.out.println (我是(s ) ); } }.show (抽象类); 实现//接口的抽象方法new interface 01 ((@ overridepublicvoidshow ) strings ) { System.out.println ('我是' s ); } }.show (接口); }运行结果

我是具体的班级

我是抽象的班级

我是接口

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。