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

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

本文介绍了Java匿名内部类的实现,对大家的学习或工作有一定的参考价值。让我们和边肖一起学习。

匿名内部类:

举个例子吧。让我们展示一下什么是匿名内部类。Endeavor刚接触的时候觉得哇,好奇怪的样子。这太尴尬了。我不知道你的感受。

为了比较,我们举一个普通类方法调用的例子(大家应该都懂):

输出是:

言归正传,匿名内班。从名字上来说,我想大家都知道什么是匿名内部类。

1.定义:是一个没有名字的内部类(内部类之前已经介绍过了)。2.使用内部类有什么好处?可以用一句话概括:简化写作。至于怎么简化,在哪里简化,后面再说。3.先说什么时候使用匿名内部类,也就是使用的前提和条件:只有存在继承和实现关系的时候才能使用。其实这个很好理解。首先,匿名内部类没有名字,那么如何描述它们并拥有新的对象呢?是的,没错。我们应该通过继承它的父类或实现一个接口来实现这个目标。

这里有一个例子:

输出结果:

看到这几行代码,我不应该解释为什么匿名内部类可以简化编写。

如何在匿名的内部类中调用方法,应该也是大家好奇的。毕竟,如何在没有匿名内部类的类名的情况下调用方法就成了问题。

1、匿名内部类中只有一个方法的情况

2、匿名内部类有一个方法调用起来很容易,那如果有多个方法呢,大家不会想这样吧?

尝试输出:

那么如何在匿名内部类中调用多个方法呢?

Endeavor有两种方法,如果大家还有更好的方法多多赐教哦!

1、利用多态的思想(匿名内部类的前提是存在继承或实现关系的)

输出结果:

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

输出结果:

不知道大家看完有没有问题。如果要调用匿名内部类的独特方法呢?怎么称呼?

输出结果:

显然是做不到的,所以Endeavor认为有内部名字的内部类可以有自己唯一的方法,但前提是这个匿名内部类只有这一个方法。如果有多个方法,他只能继承父类的方法,重写这个方法或者实现接口。在有多个方法的情况下绝对不可能调用他自己的唯一方法,但是这个唯一方法可以存在,但是不能调用。我不知道你是否同意。

示例:

输出结果:

补充三点:

1.匿名内部类:匿名内部类只是没有类名,其他成员都是可用的。

之前说匿名内部类存在的前提是继承或者实现,但是我没有看到extends和implements这两个关键词。这是怎么回事?

答:很简单。没有匿名的内部类,也没有类名,更不用说使用关键字了。这些由jvm处理。

2.匿名内部类是实现接口。

3.接下来,我给大家分享一下匿名内部类最常见的用法,就是把它们作为参数使用。

输出结果:

关于详细解释Java匿名内部类的这篇文章到此结束。希望对大家的学习有帮助,也希望大家多多支持。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: