专业的JAVA编程教程与资源

网站首页 > java教程 正文

“全栈2019”Java第八十五章:实现接口中的嵌套接口

temp10 2024-10-05 01:09:53 java教程 9 ℃ 0 评论

难度

初级

学习时间

30分钟

“全栈2019”Java第八十五章:实现接口中的嵌套接口

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

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

1.接口嵌套接口

在实现接口中嵌套接口之前,我们先来温习一下接口嵌套接口。

演示:

请定义一个外部接口IOuter,在外部接口IOuter里面定义一个嵌套接口IInner。

请观察程序代码。

代码:

2.外部类实现嵌套接口

我们先试试外部类实现嵌套接口。

演示:

请定义一个外部接口IOuter,在外部接口IOuter中定义一个嵌套接口IInner。然后在嵌套接口IInner中定义一个静态常量、抽象方法、默认方法和静态方法。最后定义一个外部类Outer并实现嵌套接口IInner,在外部类Outer的构造方法中显示输出静态常量并调用抽象方法、默认方法和静态方法。在Main类main()方法中创建外部类Outer对象。

请观察程序运行结果。

代码:

IOuter接口:

Outer类:

Main类:

结果:

从运行结果来看,完全正确。接下来,我们来看看程序执行过程:

从Main类的main()方法开始执行,创建了外部类Outer对象,故调用了外部类Outer的构造方法:

首先执行的是显示输出静态常量:

执行结果:

构造方法继续往下执行:

此次执行的是抽象方法,但大家都知道抽象方法必须实现才能被执行,所以这里实际执行的抽象方法是:

执行结果:

构造方法继续往下执行:

此次执行的是默认方法,如果接口中的默认方法没有被重写,那么将执行的接口中的默认方法,如果被重写那么将执行实现类中被重写的默认方法,而我们实现类Outer正好重写了嵌套接口中的默认方法,所以实际执行的是实现类Outer中的默认方法:

执行结果:

好了,构造方法继续往下执行:

此次执行的是嵌套接口中静态方法,毋庸置疑实际调用的就是嵌套接口中的静态方法。执行结果:

至此,程序执行完毕!

3.内部类实现嵌套接口

上面我们用外部类实现了嵌套接口,接下来我们试试内部类可不可以实现嵌套接口。

演示:

请定义一个外部接口IOuter,在外部接口IOuter中定义一个嵌套接口IInner。然后在嵌套接口IInner中定义一个静态常量、抽象方法、默认方法和静态方法。最后定义一个外部类Outer,在外部类Outer里面定义一个内部类Inner并实现嵌套接口IInner,在内部类Inner的构造方法中显示输出嵌套接口中静态常量并调用抽象方法、默认方法和静态方法。在Main类main()方法中创建内部类Inner对象。

请观察程序运行结果。

代码:

IOuter接口:

Outer类:

Main类:

结果:

从运行结果来看,程序运行正常且结果正确。

接下来,我们开始分析程序执行过程:

main()方法中先创建外部类Outer对象,再使用外部类对象new 内部类对象,这是一种常见的创建内部类对象过程。既然创建了内部类对象,必然会调用其构造方法:

最先执行的是显示输出嵌套接口中的静态常量:

执行结果:

内部类构造方法继续往下执行:

上一小节也说过抽象方法必须实现才能被调用,所以我们看看实现类里面的抽象方法:

执行结果:

内部类构造方法继续往下执行:

接口中的默认方法若没有被实现类重写则执行的是接口中的默认方法;若被实现类重写则执行的是实现类中的默认方法。这里我们的实现类重写了接口中的默认方法,所以实际执行的是实现类中的默认方法:

执行结果:

内部类构造方法继续往下执行:

此次执行的是嵌套接口中的静态方法,毋庸置疑,必然调用的是嵌套接口中的静态方法。执行结果:

最后,整个程序执行完毕!

总结

  • 外部类可以实现接口中的嵌套接口。
  • 内部类可以实现接口中的嵌套接口。

至此,Java中实现接口中的嵌套接口相关内容讲解先告一段落,更多内容请持续关注。

附:接口学习资料

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

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

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

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

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

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

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

答疑

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

上一章

“全栈2019”Java第八十四章:接口中嵌套接口详解

下一章

“全栈2019”Java第八十六章:嵌套接口可以多继承吗?

学习小组

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

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

全栈工程师学习计划

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

版权声明

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表