Приветствую Вас ГостьСреда, 15.05.2024, 00:36

Каталог статей


Интерфейсы

Интерфейс - это своего рода набор правил, описывающие совокупность возможностей, предоставляемых классом.

В интерфейсе задается набор методов, которые должен реализовывать класс, содержащий интерфейс. Один интерфейс могут использовать сразу несколько классов, так же как и один класс может быть расширен несколькими интерфейсами (в этом случае класс должен содержать все методы всех интерфейсов). В этом случае интерфейсы указываются через запятую в объявлении класса.

Так как класс может наследовать несколько интерфейсов, то их использование дает возможность расширить возможности создаваемого класса. В отличие от интерфейса, простое наследование ограничивает создаваемый класс рамками только родительского класса.

Для указания того, что класс наследует интерфейс надо указать слово implements.

Например:

// интерфейс

interface Fruit {
    void setName(String s);
}

//класс
class Apple implements Fruit {
    String name;

    public String getName() { // добавляем свой метод
        return name;
    }

    public void setName(String s) { // описываем метод интерфейса
        this.name = s;
    }

    public static void main(String[] args) {
        Applemy1 = new Apple();
        my1.setName("Apple");
        System.out.println(my1.getName());       
    }
}

Можно объявить переменную с типом данных, являющимся наименованием интерфейса, например для примера ниже строку Apple my1 = new Apple(); заменим на Fruit my1 = new Apple();

В этом случае при вызове метода my1.getName() будет выведена ошибка, так как в интерфейсе Fruit  нет такого метода.

Можно посмотреть мутный пример с использованием нескольких наследуемых интерфейсов здесь: http://www.fandroid.info/interfejsy/

Интерфейс может быть частью класса. При создании нового класса, если необходимо использовать такой интерфейс, то указывается имя класса и через точку имя интерфейса, например:

public class SomeClass {

    interface Callback{
        void callingBack();
    }

    Callback callback;

    public void registerCallBack(Callback callback){
        this.callback = callback;
    }

    void doSomething(){
        JOptionPane.showMessageDialog(null, "Выполняется работа");

        // вызываем метод обратного вызова
        callback.callingBack();
    }
}

// новый класс, который наследует интерфейс класса SomeClass

public class MyClass implements SomeClass.Callback {

    @Override
    public void callingBack() {

        System.out.println("Вызов метода обратного вызова");

    }
}

Категория: Java | Добавил: robolen (23.10.2022)
Просмотров: 129 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
Программирование [7]
Java [9]
Описание языка Java
API [0]
Примеры реализации задач [0]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0