在第一步中,我们将看到类可以在Java中具有接口吗?
是的,可以在类内部定义一个接口。
该接口是在另一个接口中定义的,称为嵌套接口,但是当我们在类内部定义一个接口时,该接口也称为嵌套接口。
在类内部定义接口的目的是对相关接口进行分组,以便可以轻松管理它们。
一旦在类中定义了接口,则我们将无法直接访问接口(即,接口必须由类引用)。
当我们在类中定义接口时,对访问修饰符有限制。
在类中定义的接口上不必强制给“ static”关键字加上前缀,因为默认情况下该接口是静态的。
语法:
class MyClass{ //MyClass代码 interface MyInterface(){ //MyInterface代码 } }
示例
//Java程序演示的例子 //在类中定义接口 class MyClass { //类中的接口定义 interface MyInterface { void display(); } } public class Main implements MyClass.MyInterface { String str = "we are learning Java Programming"; //覆盖接口的抽象方法 public void display() { System.out.print("Hi,"); } public static void main(String[] args) { Main m = new Main(); MyClass.MyInterface mc = new Main(); //调用接口的Main class方法 mc.display(); System.out.println(m.str); } }
输出结果
Hi, we are learning Java Programming
在第二步中,我们将看到接口在Java中可以有一个类吗?
是的,可以在接口内部定义一个类。
在接口内定义类的目的是对相关接口进行分组,以便可以轻松管理它们。
一旦在接口中定义了一个类,那么我们将无法直接访问该类(即,一个类必须由接口引用)。
当我们在接口中定义一个类时,对访问修饰符没有任何限制。
不必在接口中定义的类前面加上“ static”关键字,因为默认情况下该类为public。
语法:
interface MyInterface{ //MyInterface代码 class MyClass(){ //MyClass代码 } }
示例
//Java程序演示的例子 //在接口中定义一个类 interface MyInterface { //MyClass定义 class MyClass { String str = "Java support OOPS Concept"; void display() { System.out.print("Hi,"); } } } public class Main extends MyInterface.MyClass { public static void main(String[] args) { //主类被实例化 Main m = new Main(); //调用MyClass方法 m.display(); System.out.println(m.str); } }
输出结果
Hi, Java support OOPS Concept