您的位置 首页 java

“全栈2019”Java第一百章:局部内部类实现接口详解

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

本教学属于系列教学,内容具有连贯性,本章使用到的内容之前教学中都有详细讲解。

1.局部内部类

在任何作用域中定义的类都称之为局部内部类。

演示:

局部内部类。

代码:

没有学习过的同学或者是不太清楚局部内部类的同学也别急,可以点击下面局部内部类学习资料来进行学习。

附:局部内部类学习资料

2.我们可以在方法内部定义接口吗?

接下来,我们来试试在方法(任意作用域都行)中定义接口。

演示:

请在Main类main()方法中定义一个接口 People 和一个局部内部类Student。

在接口People中定义一个抽象方法。

局部内部类Student实现People接口。

在main()方法中(作用域内)创建局部内部类Student对象,并调用其实现方法。

请观察程序运行结果。

代码:

Main类:

结果:

错误信息:

文字版:

从运行结果来看,我们不能在任意作用域中定义接口。简单的分析一下错误原因。

首先,来看定义在方法中的接口:

接口的定义本身没有错误,但是接口定义的位置有问题,不能定义在任意作用域内,例如此处的方法体中。

3.局部内部类实现嵌套接口

既然作用域内不能定义接口,那么我们把接口定义在类中,然后让局部内部类去实现此接口,行不行呢?来试试。

演示:

请在Main类中定义一个嵌套接口People,并在其接口中定义一个抽象方法。

在Main类main()方法中定义一个局部内部类Student,并让其实现接口People。

在main()方法中(作用域内)创建局部内部类Student对象,并调用其实现方法。

请观察程序运行结果。

代码:

Main类:

结果:

从运行结果来看,局部内部类可以实现嵌套接口。我们来简单看看程序执行过程。

首先,我们来看看嵌套接口的定义:

再来看看我们局部内部类是如何实现这个嵌套接口的:

再接着,我们就创建了局部内部类对象:

此次执行的是创建局部内部类对象,并通过局部内部类对象调用其实现方法,执行结果:

至此,程序执行完毕!

4.局部内部类实现外部接口

接下来,我们来试试局部内部类来继承内部类,看行不行。

演示:

请定义一个People接口,并在其中定义一个抽象方法。

在Main类main()方法中定义一个局部内部类Student。

让局部内部类Student实现People接口。

在main()方法中(作用域内)创建局部内部类Student对象,并调用其实现方法。

请观察程序运行结果。

代码:

People接口:

Main类:

结果:

从运行结果来看,局部内部类是可以实现外部接口的。

简单的来看一下这个程序。首先,我们来看看我们定义的接口People,里面只有一个抽象方法:

再来看我们定义的局部内部类,它实现了People接口,如果程序运行没有问题,则说明局部内部类可以实现外部接口;如果程序运行有问题,则说明局部内部类不可以实现接口:

接下来就是创建局部内部类对象,然后调用其实现方法:

执行结果:

到这里,程序执行完毕!

从此例中我们知道局部内部类是可以实现外部接口。

总结

  • 接口要么作为外部接口单独存在,要么作为嵌套接口存在于类中,其他一切作用域都不能再定义接口。
  • 局部内部类能实现嵌套接口。
  • 局部内部类能实现外部接口。

至此,Java中局部内部类与实现接口相关内容讲解先告一段落,更多内容请持续关注。

附:类学习资料

附:抽象类学习资料

附:接口学习资料

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

下一章

“全栈2019”Java第一百零一章:局部内部类覆盖作用域内成员详解

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号Gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号Gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

版权声明

原创不易,未经允许不得转载!

文章来源:智云一二三科技

文章标题:“全栈2019”Java第一百章:局部内部类实现接口详解

文章地址:https://www.zhihuclub.com/175330.shtml

关于作者: 智云科技

热门文章

网站地图