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

难度

初级

学习时间

30分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

提示

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

1.接口

我们之前也学过接口:“全栈2019”Java第六十章:定义接口

演示:

请定义一个接口Computable,再定义一个类Outer,Outer类实现了Computable接口,在Main类里面创建Outer类的对象,调用其comput()方法。

请观察程序运行结果。

代码:

Computable接口:

Outer类:

Main类:

结果:

在本例中,Outer类实现了Computable接口,在Main类main()方法中创建了Outer类的对象,调用其computer()方法,整个程序运行正常,结果也是正确的。

2.类中嵌套接口

那么有没有可能将接口嵌入到类中?我们来试试。

演示:

请定义一个类Outer,在Outer类里面定义一个接口Computable,该接口没有任何实现类。

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,在一个类里面定义一个接口是完全没有问题的,下面我们来看看该接口能不能被实现。

3.外部类实现接口

上一小节我们在类中定义了一个接口,还没有任何实现类,这一小节,我们给这个接口添加一个实现类。

演示:

请定义一个类Outer,在Outer类中定义一个接口Computable。再定义一个类Computer,让其实现Computable接口。最后在Main类main()方法中创建Computer对象,调用其comput()方法。

请观察程序运行结果。

代码:

Outer类:

Computer类:

Main类:

结果:

从运行结果来看,定义在类中的接口同样可以被另外一个外部类实现。

4.类中可以定义多个接口

一个类里面可以定义多个接口。

演示:

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

请观察程序运行结果。

代码:

Outer类:

Main类:

结果:

从运行结果来看,在一个类里面定义多个接口也是可以的。

5.嵌套接口的权限修饰符

类中嵌套的接口同样可以被public、protected、package-private和private权限修饰符所修饰。

演示:

请定义一个类Outer,在Outer类中定义四个接口,它们的权限修饰符分别为public、protected、package-private和private。再定义一个Computer类,实现可实现的四个接口中的任意一个即可。最后在Main类中创建Computer对象,调用其实现方法。

请观察程序运行结果。

代码:

Outer类:

Computer类:

Main类:

结果:

从运行结果来看,我们在类中定义多个接口并没有任何问题,用权限修饰符修饰完它们之后,又有多少个接口可以被实现呢?我们来看一下:

我们发现只有Computable1、Computable2和Computable3接口可以,分别来看一下这三个接口:

它们的访问权限分别是public、protected、package-private。

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

总结

  • 类中可以嵌套接口。
  • 类中嵌套接口可以被另一个外部类实现。
  • 类中嵌套接口权限修饰符可以是public、protected、package-private和private。

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

附:接口学习资料

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

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

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

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

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

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

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

答疑

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

上一章

“全栈2019”Java第七十八章:内部类可以继承其他类吗?

下一章

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

学习小组

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

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

全栈工程师学习计划

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

版权声明

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

了解更多
举报
评论 0