在学习接口的过程中,这次的嵌套接口对接口的知识覆盖的更加全面,所以在这为读者们进行讲解。
嵌套接口
**:指接口可以嵌套在类或其他的接口中。但凡事的存在必有其必然性,也存在一定的规则约束。接下来我们通过以下代码进行分析得出我们应该掌握的一些规则。
package lession08;
class A{
interface B{
void f();
}
public class BImp implements B{
public void f() {}
}
private class BImp2 implements B{
public void f() {}
}
public interface C{
void f();
}
class CImp implements C{
public void f() {}
}
private class CImp2 implements C {
public void f() {}
}
private interface D{
void f();
}
private class DImp implements D{
public void f() {}
}
public class DImp2 implements D{
public void f() {}
}
public D getD() {
return new DImp2();
}
private D dRef;
public void receiveD(D d) {
dRef=d;
dRef.f();
}
}
interface E{
interface G{
void f();
}
//Redundant "public"
public interface H{
void f();
}
void g();
//can't be private within an interface:
//!private interface I{}
}
public class NestingInterfaces {
public class BImp implements A.B{
public void f() {}
}
class CImp implements A.C{
public void f() {}
}
class EImp implements E{
public void g() {}
}
class EGImp implements E.G{
public void f() {}
}
class EImp2 implements E{
public void g() {}
class EG implements E.G{
public void f() {}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
A a2=new A();
a2.receiveD(a.getD());
}
}
首先要说明的是该代码是无任何输出的。
通过如上我们看到,
(1)接口是可以被视线被private的,但是嵌套在一个接口当中的接口会自动成为public,不能将其声明为public。
(2)在主函数当中创建对象的时候,只能为大类或者说一级类,而子嵌套当中的类不可以去用来直接创建对象。
(3)在实现接口的过程中,我们不需要实现嵌套在其内部的任何接口。并且private接口是不能在定义它的类之外被实现。
请大家批评指正,谢谢

本文探讨了Java中的嵌套接口概念,强调了接口可以嵌套在类或其它接口内部,并详细阐述了嵌套接口的特性:接口可以被声明为private,但嵌套在接口内的接口默认为public;主函数中只能创建顶级类的对象,无法直接创建嵌套类对象;实现接口时,无需实现嵌套接口,且private接口不能在外部实现。
358

被折叠的 条评论
为什么被折叠?



