Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по Java

  Все выпуски  

Уроки по Java


Информационный Канал Subscribe.Ru

Java. Рассылки сайта progs.biz
Выпуск № 38
 
Начало > Java > Основы > Урок 30

Джим Адамс. DirectX: продвинутая анимация.
Джим Адамс. DirectX: продвинутая анимация
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 30.

Введение в Java
Урок 30. Интерфейс в качестве типа

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

IFigure f = new IFigure(); // Ошибка!

С другой стороны в переменную типа интерфейса мы можем записать любой класс, реализующий этот интерфейс. Например, в интерфейс IFigure из прошлого урока мы можем записать класс Rect:

IFigure f = new Rect(2, 4);

Это оказывается весьма удобным - так как реальный тип переменной нам может быть не известен на этапе компиляции. Известен же он может быть только на этапе выполнения программы.

Вот так может быть переделан тестовый класс из прошлого урока:

public class Test {
    public static void main(String[] args) {
        IFigure[] f = new IFigure[2];//= //new Rect(2, 4);
        f[0] = new Rect(2, 4);
        f[1] = new Circle(1);
        for (int i = 0; i < 2; i++){
            System.out.println("Square[" + i + "]: " + f[i].square());
        }
    }
}

Обратите внимание, что тут мы в переменные типа интерфейса (у нас массив из 2-х переменных такого типа) записываем классы-потомки этого интерфейса (а именно Rect и Circle). И в момент вызова метода square интерфейса фактически вызовется метод из соответствующего класса, реализующего этот интерфейс. Т. е. площадь для прямоугольника будет считаться по его формуле, а для круга - по его.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2006 сайт progs.biz
© 2002-2006 Игорь Алексеев

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.javalessons
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное