📅  最后修改于: 2020-04-05 15:42:49             🧑  作者: Mango
我们可以将接口声明为类或其他接口的成员。这样的接口称为成员接口或嵌套接口。
在类接口的任何其他类。在类中声明的此接口可以是默认接口,公共接口,受保护的接口而非私有接口。在实现接口时,我们将接口称为c_name.i_name,其中c_name是嵌套它的类的名称,而i_name是接口本身的名称。
让我们看下面的代码:
// Java程序展示嵌套接口
import java.util.*;
class Test
{
interface Yes
{
void show();
}
}
class Testing implements Test.Yes
{
public void show()
{
System.out.println("接口方法");
}
}
class A
{
public static void main(String[] args)
{
Test.Yes obj;
Testing t = new Testing();
obj=t;
obj.show();
}
}
输出:
接口方法
上例中的访问说明符是默认的。我们也可以分配公共的,受保护的或私有的。以下是受保护的示例。在此特定示例中,如果将访问说明符更改为私有,则将得到编译器错误,因为派生类尝试访问它。
// Java展示protected的接口
import java.util.*;
class Test
{
protected interface Yes
{
void show();
}
}
class Testing implements Test.Yes
{
public void show()
{
System.out.println("接口方法");
}
}
class A
{
public static void main(String[] args)
{
Test.Yes obj;
Testing t = new Testing();
obj=t;
obj.show();
}
}
输出:
接口方法
可以在一个接口中声明另一个接口。我们将接口称为i_name1.i_name2,其中i_name1是嵌套接口的名称,而i_name2是要实现的接口的名称。
// Java在接口中声明另一个接口
import Java.util.*;
interface Test
{
interface Yes
{
void show();
}
}
class Testing implements Test.Yes
{
public void show()
{
System.out.println("接口方法");
}
}
class A
{
public static void main(String[] args)
{
Test.Yes obj;
Testing t = new Testing();
obj = t;
obj.show();
}
}
输出:
接口方法
注意:在上面的示例中,即使我们没有写成public,访问说明符也是public。如果尝试将接口的访问说明符更改为public以外的任何内容,则会出现编译器错误。请记住,接口成员只能是公共的。。
// Java程序展示接口不能用非公共的接口成员
import java.util.*;
interface Test
{
protected interface Yes
{
void show();
}
}
class Testing implements Test.Yes
{
public void show()
{
System.out.println("接口方法");
}
}
class A
{
public static void main(String[] args)
{
Test.Yes obj;
Testing t = new Testing();
obj = t;
obj.show();
}
}
输出:
illegal combination of modifiers: public and protected
protected interface Yes