ИНТЕРФЕЙС В JAVA | РУКОВОДСТВО ПО JAVA

Ранее мы изучали абстрактный класс. Мы узнали, что с помощью абстрактного класса мы можем достичь частичной абстракции, а с помощью интерфейса мы можем достичь 100% абстракции. Давайте посмотрим, как мы можем достичь 100% абстракции с интерфейсом в этом посте.

Абстракция — это методология сокрытия реализации внутренних деталей и показа функциональности пользователям.

Интерфейс в Java выглядит аналогично. к классу, но и интерфейс, и класс — это два разных понятия. Интерфейс может иметь методы и переменные, как и класс, но методы, объявленные в интерфейсе, по умолчанию являются абстрактными. Мы можем достичь 100% абстракции и множественного наследования в Java с интерфейсом.

О чем следует помнить:

1. Интерфейс Java представляет отношение IS-A, подобное Наследованию
2. Интерфейс не может быть создан так же, как абстрактный класс
3. Компилятор Java добавляет ключевые слова public и abstract перед методами интерфейса
4. Компилятор Java добавляет ключевые слова public, static и final перед элементами данных
5. Интерфейс расширяет другой интерфейс точно так же, как класс расширяет другой класс, но класс реализует интерфейс.
6. Класс, реализующий интерфейс, должен реализовывать все методы этого интерфейса.
7. Java позволяет реализовать более одного интерфейса в классе

Давайте рассмотрим пример программы:

Чтобы создать интерфейс — щелкните правой кнопкой мыши свой проект — «Создать» — Interface

123456789

package interfaceClass; public interface MyInterface {//Компилятор рассматривает его как public abstract void myMethodOne();//Метод ниже не имеет bodypublic void myMethodOne(); }

Теперь создайте класс и реализуйте его с указанным выше интерфейсом

123456789101112131415161718192021

класс интерфейса пакета; открытый класс MyClass реализует MyInterface{public static void main(String [] args){MyInterface obj = new MyClass();obj.myMethodOne();}//Попробуйте прокомментировать приведенный ниже метод myMethodOne и посмотреть. Вы столкнетесь с ошибкой компиляции.//По правилу этот класс должен реализовывать абстрактный метод интерфейса @Overridepublic void myMethodOne() { System.out.println(“Implementation of myMethodOne”);} }

< p>Интерфейс расширяет другой интерфейс, но интерфейс не может реализовать другой интерфейс.

Теперь давайте посмотрим, как интерфейс расширяет другой интерфейс, создавая два интерфейса. Если интерфейс (скажем, MyInterfaceTwo) расширяет другой интерфейс (MyInterfaceOne). Теперь, если класс реализует интерфейс InterfaceTwo, то этот класс должен обеспечить реализацию всех методов обоих интерфейсов (MyInterfaceOne и MyInterfaceTwo)

Чтобы создать интерфейс — щелкните правой кнопкой мыши свой проект — «Создать» — Interface

123456789

package interfaceClass; public interface MyInterfaceOne {//Компилятор рассматривает его как public abstract void myMethodOne();//Метод ниже не имеет bodypublic void myMethodOne(); }

Давайте создадим еще один интерфейс

12345678

package interfaceClass; public interface MyInterfaceTwo extends MyInterfaceOne{ //Компилятор рассматривает его как public abstract void myMethodTwo();//Метод ниже не имеет bodypublic void myMethodTwo();

Давайте создадим Class

123456789101112131415161718192021222324252627282930

класс интерфейса пакета; открытый класс MyClass реализует MyInterfaceTwo{public static void main(String [] args){MyInterfaceTwo obj = new MyClass();obj.myMethodTwo();}//Если вы прокомментируете два метода ниже, вы увидите ошибку компиляции/*This класс просто реализует MyInterfaceTwo, но он также должен реализовать все методы MyInterfaceTwo и MyInterfaceOne, потому что MyInterfaceTwo расширяет MyInterfaceOne*/@Overridepublic void myMethodOne() { System.out.println(“Реализация myMethodOne”);} @Overridepublic void myMethodTwo() { System.out.println(“Реализация myMethodTwo”);} }

Вывод:

1

Реализация из myMethodTwo

TAG: qa

От QA genius

Adblock
detector