ИНТЕРФЕЙС НА ЯВЕ | Учебное пособие по Java

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

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

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

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

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

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

Чтобы создать интерфейс, щелкните правой кнопкой мыши свой проект – Создать – Интерфейс

package InterfaceClass; public интерфейс MyInterface { //Компилятор рассматривает его как общедоступный абстрактный void myMethodOne(); //Метод ниже не имеет тела public void myMethodOne();

Теперь создайте класс и реализуйте его с помощью вышеуказанного пакета интерфейса InterfaceClass; общественный класс MyClass реализует MyInterface {public static void main(String [] args) {MyInterface obj = new MyClass(); объект.myMethodOne(); } //Попробуйте прокомментировать приведенный ниже метод myMethodOne и посмотрите. Вы столкнетесь с ошибкой компиляции. //Согласно правилу, этот класс должен реализовать абстрактный метод интерфейса @Override public void myMethodOne() { System.out.println("Реализация myMethodOne"); }

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

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

Чтобы создать интерфейс — щелкните правой кнопкой мыши свой проект — Создать — Интерфейсный пакет InterfaceClass; public интерфейс MyInterfaceOne { //Компилятор рассматривает его как общедоступный абстрактный void myMethodOne(); //Метод ниже не имеет тела public void myMethodOne();

Давайте создадим еще один интерфейсный класс интерфейса; public интерфейс MyInterfaceTwo расширяет MyInterfaceOne{ //Компилятор рассматривает его как общедоступный абстрактный void myMethodTwo(); //Метод ниже не имеет тела public void myMethodTwo();

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

Выход:

Реализация myMethodTwo
TAG: qa

От QA genius

Adblock
detector