Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Public void f1(int a1);






}

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

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

Реализация методов интерфейсов в классах должна быть объявлена со специализацией public.

Поля в интерфейсах являются глобальными для класса его реализующего. Они могут быть только public, final, static, т.е. неизменямые, независмо от того, указаны ли какие либо модификаторы из public, final, static в объявлении.

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

Если класс реализует два интерфейса, содержащие один и тот же метод, то пользователи любого интерфейса будут использовать один и тот же метод.

Пример:

Объявление интерфейса

public interface My_int {

static final string str = «Тест интерфейса»;

string str1 = «Проба»

Public int My_met (int switch);

}

//Реализация абстрактных методов интерфейса в классе

 

Сlass TestInt implements My_int

{public int My_met (int switch)

{if (switch= = 0) return (0)

Else

return (switch*switch)}

public void f1 () {…….}}

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

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

Если реализуемый класс не является абстрактным классом, то в классе необходимо определить тело каждого объявленного в наследуемых интерфейсах метода.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.