一个类可以有一个接口,接口可以有一个Java类吗?

在第一步中,我们将看到类可以在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