Рубрики

Вложенный интерфейс в Java

Мы можем объявить интерфейсы как члены класса или другого интерфейса. Такой интерфейс называется интерфейсом участника или вложенным интерфейсом.

Интерфейс в классе
Интерфейсы (или классы) могут иметь только общедоступные и заданные по умолчанию спецификаторы доступа при объявлении вне любого другого класса (подробности см. В этом разделе). Этот интерфейс, объявленный в классе, может быть стандартным, открытым, защищенным, а не закрытым. При реализации интерфейса мы упоминаем интерфейс как 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("show method of interface");

    }

}

  

class A

{

    public static void main(String[] args)

    {

        Test.Yes obj;

        Testing t = new Testing();

        obj=t;

        obj.show();

    }

}

show method of interface 

Спецификатор доступа в приведенном выше примере является значением по умолчанию. Мы можем назначить публичный, защищенный или частный. Ниже приведен пример защищенного. В этом конкретном примере, если мы изменим спецификатор доступа на private, мы получим ошибку компилятора, потому что производный класс пытается получить к нему доступ.

// Java-программа для демонстрации защищенных
// спецификатор для вложенного интерфейса.

import java.util.*;

class Test

{

    protected interface Yes

    {

        void show();

    }

}

  

class Testing implements Test.Yes

{

    public void show()

    {

        System.out.println("show method of interface");

    }

}

  

class A

{

    public static void main(String[] args)

    {

        Test.Yes obj;

        Testing t = new Testing();

        obj=t;

        obj.show();

    }

}

show method of interface 

Интерфейс в другом интерфейсе
Интерфейс может быть объявлен внутри другого интерфейса. Мы упоминаем интерфейс как 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("show method of interface");

   

  

class A

{

   public static void main(String[] args)

   {

     Test.Yes obj;

     Testing t = new Testing();

     obj = t;

     obj.show();

   

}

show method of interface 

Примечание. В приведенном выше примере спецификатор доступа является открытым, даже если мы не написали открытый. Если мы попытаемся изменить спецификатор доступа интерфейса на что-либо, кроме public, мы получим ошибку компилятора. Помните, что члены интерфейса могут быть только публичными. ,

// Java-программа для демонстрации интерфейса не может
// иметь не публичный интерфейс

import java.util.*;

interface Test

{

    protected interface Yes

    {

        void show();

    }

}

  

class Testing implements Test.Yes

{

    public void show()

    {

        System.out.println("show method of interface");

    }

}

  

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

Эта статья предоставлена Twinkle Tyagi . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Вложенный интерфейс в Java

0.00 (0%) 0 votes