首页 > 编程知识 正文

java匿名内部类,Java匿名对象

时间:2023-05-03 06:51:08 阅读:60073 作者:811

匿名内部类:

先举个例子吧。 让我给你看看什么是匿名内部类。 Endeavor刚接触的时候,我觉得哇,样子很奇怪。 这也有违和感吧。 我不知道大家有什么感觉。

为了进行比较,我们举了一个常规类方法调用的例子。

输出结果如下。

现在进入正题吧。 是匿名内部类。 从名字可以知道什么是匿名内部类吧。

1、定义:未命名的内部类(内部类之前介绍过哦)。

2、使用内部班级的好处是什么? 用一句话概括。 简略地写。 怎么简化的,哪里简化的我以后再说。

3、匿名内部类在什么时候使用,用前提和条件吧。 可以在必须处于继承和实现关系时使用。 其实这也很理解。 首先,匿名内部类没有名称。 那个应该怎么记述,记述new个对象呢? 嗯,是的通过继承父类或实现接口来实现这个目的。

举个例子吧。

输出结果:

看了这几行代码,我没必要解释为什么匿名内部类可以简化写吧。

您可能也很好奇如何调用匿名内部类中的方法,但最终问题是匿名内部类中没有类名时应该如何调用方法。

1、匿名内部类中只有一个方法时

2、匿名内部类有一个方便调用的方法。 那么,如果有多个方法,你不想这样吧?

请尝试输出结果:

那么,应该如何调用匿名内部类的多方法呢?

有两种方法。 如果有更好的方法的话,请告诉我各种各样的事情哦。

1、利用多态性的思想(以匿名内部类为继承或实现关系为前提) ) ) ) ) ) ) )。

输出结果:

2、改变方法类型,返回this

输出结果:

看完之后,我不知道大家有没有什么疑问,如果想调用匿名内部类自己特有的方法怎么办? 我该怎么呼叫?

输出结果:

显然不行,Endeavor认为内部类可以有自己的方法,但前提是此匿名内部类只有这种方法。 如果有多个方法,他只能继承父类的方法,然后重写该方法或实现接口。 如果有多个方法,则永远不能调用自己特定的方法。 但是,这个唯一的方法可以存在,但不能调用。 我不知道你是否同意。

示例:

输出结果:

三点补充:

1、匿名内部类:匿名内部类只是没有类名,其他所有成员都有。

2、匿名内部类存在的前提是继承或实现关系,但没有看到extends和implements关键字。 怎么了?

答:很简单。 匿名内部类甚至没有类名。 如果使用关键字,就不能再做了。 这些都用jvm解决了。

2、匿名内部类实现接口

3、与大家分享匿名内部类中最常用的情况之一,即以实参的形式使用

输出结果:

————————————————

转载于CSDN博客《Cool_Tomato》的原创文章

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