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

117 阅读3分钟
原文链接: www.toutiao.com

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

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

1.类中嵌套接口

在上一章我们学过怎么在类中嵌套接口,这一章我们将讨论外部类能不能实现本类中嵌套接口。学习之前,我们先来复习一下类中嵌套接口的写法。

演示:

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

请观察程序代码。

代码:

Outer类:

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

2.外部类实现本类中嵌套接口

接口我们定义好了,那么外部类到底能不能实现本类中嵌套接口?下面我们就来试试,拭目以待。

演示:

请定义一个外部类Outer,在外部类Outer中定义一个嵌套接口Computable,然后外部类Outer实现嵌套接口Computable。

请观察程序运行结果。

代码:

Outer类:

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

Main类:

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

结果:

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

错误信息:

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

文字版:

/Users/admin/Workspace/Java/Hello/src/lab/Outer.javaError:(6, 8) java: 涉及lab.Outer的循环继承/Users/admin/Workspace/Java/Hello/src/main/Main.javaError:(9, 9) java: 找不到符号 符号: 类 Outer 位置: 类 main.MainError:(9, 27) java: 找不到符号 符号: 类 Outer 位置: 类 main.Main

从运行结果来看,外部类不能实现本类中的接口,会造成循环继承的错误。从某种意义上来讲,接口就是一个完全抽象的抽象类,实现是另一种继承的表现形式,这样的话就好理解了。当我们把接口看作是一个完全抽象的抽象类,把实现看作继承的话,那么外部类实现本类中的接口就是外部类继承本类中的抽象类,必然会造成循环继承,谁也拯救不了。

附:什么叫循环继承?

类与类之间不能存在循环继承,什么叫循环继承?就是A继承B,B继承C,C再继承A,这就叫循环继承。A继承A也是循环继承。

总结

  • 外部类不能实现本类中嵌套接口,原因是会造成循环继承错误。

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

附:接口学习资料

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

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

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

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

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

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

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

答疑

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

上一章

“全栈2019”Java第七十九章:类中可以嵌套接口吗?

下一章

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

学习小组

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

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

全栈工程师学习计划

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

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

版权声明

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