首页 > 编程知识 正文

java中的内部类和匿名内部类,匿名类和内部类的区别

时间:2023-05-04 01:11:32 阅读:62806 作者:4402

java匿名内部类什么是匿名内部类? 匿名内部类的使用场景? 匿名内部类是如何创建的? 匿名内部类的实现和使用示例1 (实现接口)示例2 )继承类)

匿名内部类是什么?

匿名内部类,顾名思义,就是不知道该类是什么名字,也就是类名。

匿名内部类的使用场景? 匿名内部类适合创建只使用一次的类。 这意味着创建只能使用一次的匿名内部类。

匿名内部类是如何创建的? new类名(参数)实现接口)//匿名内部类的类主体部分)从上面的定义可以看出,匿名内部类必须继承父类,或者实现一个接口,但最多只能继承一个父类,或者一个两个规则:匿名内部类不能是抽象类。 匿名内部类无法定义构造函数。 由于匿名内部类没有类名,因此无法定义构造函数,但匿名内部类可以初始化块,然后通过初始化块来完成构造函数必须执行的任务。 匿名内部类的实现和使用实例1 (实现接口)首先,定义匿名类实现的接口。 代码如下

publicinterfaceproduct { double getprice (; 字符串getname (; 接下来,定义实体类。 实体类定义了方法。 方法的参数是上述接口对象,此时将传递实现上面创建的接口的匿名类对象。 代码如下

public class anony { public void test (product product ) {System.out.println ) }购买' product.getName ),然后单击' product

pubicclasstest { publicstaticvoidmain (字符串[ ] args ) {Anony anony=new Anony ); //这里是匿名对象anony.test(newproduct () {@Overridepublic double getPrice ) {return 578.6; }@Overridepublic String getName () {return联想笔记本); }; ); }输出:

我买了联想笔记本,花在了578.6的总结上。 这里匿名内部类的作用是实现接口,为实现该接口的类创建对象,然后重写该接口中的方法。

例2 )继承类)首先,定义匿名类应该实现的抽象类。 代码如下。

publicabstractclassdevice { privatestring name; 公共基础双精度获取(; public String getName () { return name; }公共设备() }公共设备(字符串名称) ) {this.name=name; }然后定义实体类。 实体类定义了方法。 方法的参数是上述抽象类对象,此时传递继承上述创建的抽象类的匿名类对象。 代码如下

购买一个public class anony { public void test (设备设备) ) system.out.println ('设备. getname ) } }最后试运行:

pubicclasstest { publicstaticvoidmain (字符串[ ] args ) {Anony anony=new Anony ); //这里是匿名对象Anony.test(newdevice ('海尔视频) {@Overridepublic double getPrice ) {return 578.6; ); dvice device=new device { @ overridepublicdoublegetprice } { return 556.56; }@Overridepublic String getName () {return美丽的电视); }; annoy.test (设备; }输出:

我买了海尔电视,花了578.6买了一台漂亮的电视,花了556.56总结。 对象的匿名类继承抽象类,抽象类中的抽象方法必须重写。 对象的抽象类中的非抽象方法可以是可重写的,也可以不是可重写的。

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