Java для чайников. Урок 4. Понятие интерфейса. |
Автор megabax | |||
09.09.2011 г. | |||
Java для чайников. Урок 4. Понятие интерфейса.На уроке 2 вы поднакопились с таким понятием, как переменная. На самом же деле в переменных можно хранить не только числа и строки, но так же и экземпляры объектов. Допустим, мы хотим написать программу для автоматизации предприятия торговли. И в этой программе хотим написать какой то алгоритм анализа товаров, для чего для каждого вида товаров определяем свой класс, который будет содержать свои специфические для данной товарной группы алгоритмы анализа. В данный момент мы, конечно, не будем писать эту программу, а представим, что пишем ее, что бы просто изучить понятие интерфейса и как оно поможет нам в будущим. Допустим, мы создали заготовки классов для таких видов товаров, как "обувь" и "хлеб", и написали тестовый пример:
Компилируем его, как мы это уже умеем на уроке 1 и запускаем:
А теперь посмотрите на код внимательней. Видите, для каждого класса (вида товара) мы создали свою переменную. А если мы на момент создание переменой еще не знаем, экземпляр какого класса мы будем хранить в ней? Мы же не можем присвоить переменной тип Shoe значение Bread! Но выход есть. Надо использовать интерфейс. Иными словами, создаем некоторое подобие класса, которое по сути дела полноценным классом не является. Это и есть интерфейс. Мы не может создать экземпляр интерфейса, но можем определить переменную типа интерфейс. И в этой переменной мы сможем хранить экземпляры любых классов, которые наследую данный интерфейс. Собственно говоря, интерфейс отличается от класса тем, что в нем можно объявить методы, но нельзя реализовать их. Они уже реализуются в наследуемых классах. Давайте посмотрим на примере, как это делается:
Как видим, благодаря интерфейсу, мы можем использовать оду и ту же переменную для хранения разных классов. Откомпилируем пример и убедимся, что он работает, делает то же самое, что и предыдущий:
(С) Шуравин Александр
|
|||
Последнее обновление ( 09.09.2011 г. ) |
« След. | Пред. » |
---|