“全栈2019”Java第八十一章:外部类能否访问嵌套接口里的成员?

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

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

1.类中嵌套接口

上一章我们学过如何在类中嵌套接口,接下来来看看外部类能否访问接口中的成员,如何访问的问题。

首先,我们回顾一下如何在类中嵌套接口。

演示:

请定义一个外部类Outer,然后在Outer类里面定义一个接口。

请观察程序代码。

代码:

Outer类:

2.外部类访问本来中嵌套接口静态常量

我们来试试外部类能否正常访问嵌套接口里面的静态常量呢?

演示:

请定义一个外部类Outer,在Outer类里面定义一个接口Computable,然后在接口Computable里面定义一个静态常量,最后在外部类Outer的构造方法中通过接口名访问这个静态常量。

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,外部类是可以通过嵌套接口名来访问到嵌套接口里面的静态常量的。

3.外部类访问本来中嵌套接口抽象方法

我们再来试试外部类能否正常访问嵌套接口里面的抽象方法呢?

演示:

请定义一个外部类Outer,在Outer类里面定义一个接口Computable,然后在接口Computable里面定义一个抽象方法,最后在外部类Outer的构造方法中通过匿名内部类访问这个抽象方法。

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,外部类通过实现接口的匿名内部类访问到了接口中的抽象方法,正是匿名内部类实现了接口中的抽象方法,才使得我们有访问的可能性。因为接口中的抽象方法是非静态的,所以我们无法通过接口名直接访问,再者,抽象方法需要实现后才能使用。

4.外部类访问本来中嵌套接口默认方法

我们再来试试外部类能否正常访问嵌套接口里面的默认方法呢。

演示:

请定义一个外部类Outer,在Outer类里面定义一个接口Computable,然后在接口Computable里面定义一个默认方法,最后在外部类Outer的构造方法中通过接口名访问这个默认方法。

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,外部类可以通过实现接口的匿名内部类来访问接口中的默认方法。因为接口中的默认方法是非静态的,所以不能直接通过接口名来访问。

5.外部类访问本来中嵌套接口静态方法

我们再来试试外部类能否正常访问嵌套接口里面的静态方法。

演示:

请定义一个外部类Outer,在Outer类里面定义一个接口Computable,然后在接口Computable里面定义一个静态方法,最后在外部类Outer的构造方法中通过接口名访问这个静态方法。

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,外部类可以通过接口名直接访问接口中的静态方法。

总结

  • 外部类可以通过接口名直接访问接口中的静态常量。
  • 外部类可以通过实现了接口的匿名内部类访问接口中的抽象方法。
  • 外部类可以通过实现了接口的匿名内部类访问接口中的默认方法。
  • 外部类可以通过接口名直接访问接口中的静态方法。

类中嵌套接口是否可以访问外部类里面成员?接口中是否能嵌套接口?内部类是否能实现接口?内部类是否能实现嵌套接口?等等一些问题都会在后续文章中一一解答,逐个讲解。至此,Java中外部类访问嵌套接口的成员相关内容讲解先告一段落,更多内容请持续关注。

附:接口学习资料

“全栈2019”Java第六十章:如何定义接口

“全栈2019”Java第六十一章:如何实现接口?

“全栈2019”Java第六十二章:接口与常量详解

“全栈2019”Java第六十三章:接口与抽象方法详解

“全栈2019”Java第六十四章:接口与静态方法详解

“全栈2019”Java第六十五章:接口与默认方法详解

“全栈2019”Java第六十六章:抽象类与接口详细对比

答疑

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

上一章

“全栈2019”Java第八十章:外部类是否能实现本类中的接口?

下一章

“全栈2019”Java第八十二章:嵌套接口能否访问外部类中的成员?

学习小组

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

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

全栈工程师学习计划

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

版权声明

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

了解更多
举报
评论 0