Главная Контакты


  На сайте

  Java, JavaScript
  Документация Perl
  Документация PHP
  Документация ASP
  Новости сайта
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C
 


Java. объектно-ориентированное программирование с интерфейсами


То есть в данном случае класс - это техническое средство для упаковки реализации. Небольшой, относительно автономный кусочек программы (данные + код). И за пределами того места, где происходит упаковка, он никому не нужен.

Другое дело, если этот кусочек повторяется регулярно. Тогда имеет смысл сделать его доступным из разных частей программы. Таким образом, класс нужен только для повторного использования. Кроме того, в большой программе выделение кода в классы улучшает ее читаемость.

Реально анонимные классы мне попадались нечасто. Но дело не в том, где упакована реализация - в обычном классе или в анонимном. Важно понимать, чем различаются роль класса и роль интерфейса. 3. Наследование типа
Назвался груздем - полезай в кузов.


Наследование типа и полиморфизм обеспечиваются наследованием интерфейса и ничем иным.

Простой пример:

/* TestShips.java ---------------------------------------------------- (8< * * Наследование интерфейсов и полиморфизм * * -------------------------------------------------------------------- */ import java.util.ArrayList; interface Ship { void runTo(String s); } interface WarShip extends Ship { void bombard(); } interface Transport extends Ship { void loadTroops(int n); void landTroops(); } public class TestShips { public static void main(String[] args) { ArrayList ships = new ArrayList(); for(int i = 0; i < 3; i++) ships.add(new Transport() { private int troopers; public void runTo(String s) { System.out.println("Транспорт направляется в "+s+"."); } public void loadTroops(int n) { troopers = n; } public void landTroops() { System.out.println((new Integer(troopers)).toString()+" отрядов десантировано."); } } ); for(int i = 0; i < 2; i++) ships.add(new WarShip() { public void runTo(String s) { System.out.println("Корабль направляется в "+s+"."); } public void bombard() { System.out.println("Корабль бомбардирует цель."); } } ); for(int i = 0; i < 3; i++) ((Transport)ships.get(i)).loadTroops(i+5); for(int i = 0; i < ships.size(); i++) ((Ship)ships.get(i)).runTo("Вражий Порт"); for(int i = 0; i < 3; i++) ((Transport)ships.get(i)).landTroops(); for(int i = 3; i < ships.size(); i++) ((WarShip)ships.get(i)).bombard(); // Run-time error: java.lang.ClassCastException // ((Transport)ships.get(4)).landTroops(); // Run-time error: java.lang.ClassCastException // ((WarShip)ships.get(1)).bombard(); // Compile-time error: cannot resolve symbol // ((Ship)ships.get(1)).landTroops(); // ((Ship)ships.get(4)).bombard(); } } // (8<

Другие статьи по теме:

- Java-приложение: заглянем внутрь
- практическое введение в программирование на javascript
- Java. объектно-ориентированное программирование с интерфейсами
- Java: управление ресурсами
- возможности языка java


Голосование:
Чего Вы хотели бы видеть больше на сайте?

Статей, документации
Скриптов
Программ для вебмастера
Я не знаю



Другие голосования

Обмен кнопочками:



Приглашаем Вас обменяться кнопочками! Обращайтесь к администратору.


Новые статьи:


Наши партнеры:





2006-2024 © SMTI.RU
Главная страница | Связаться с нами