164
операции называются абс лассы, и их
тся модификаторо
ут быть статическими (s , а к
такого по
для вып е нужно
применяется.
Интерфейс
— ссылочный тип, отличающийся структуры
ли
вы
вия выполнятся для данного объек
случаях это
может быть класс, реализующий данн
тоже реализующий данный интерфейс).
Из последней фразы может быть понятно, что и к
нескольким типам. Один из этих типов, самый узк
(бо
и.
и интерфейсы (а также отдельные операции) в обоих языках могут быть шаблонными
етст
са нужн
дл х
ер и
лочной
очереди.
e IQueue <T>
{
void Put (T o);
T Get ();
int Size();
}
eue <T>
(T o)
)
st = new Node <T> (o);
Node <T> (o);
size++;
return null;
;
public class LinkedQueue <T>
: IQueue <T>
ll)
t = new Node <T> (o);
else
{
last.next = new Node <T> (o);
last = last.next;
}
size++;
}
public T Get ()
{
if(first == null) return default(T);
else
{
T result = first.o;
if(last == first) last = null;
first = first.next;
своих операций — такие трактными. И абстрактные к
абстрактные операции помечаю м
abstract.
Поля и операции мог tatic), т.е. относиться не к объекту класса
классу в целом. Для получения значения ля достаточно указать класс, в котором оно
определено, а не его объект. Точно так же, олнения статической операции н
указывать объект, к которому она
от класса тем, что он не определяет
своих объектов (не имеет полей) и не задает реа
абстрактный тип данных, над которыми можно
конкретно дейст
заций для своих операций. Интерфейс — это
полнять заданный набор операций. Какие
та, зависит от его точного типа (в обоих
ый интерфейс, а в C# — еще и структурный тип,
в Java, и в C# объект может относиться сразу
ий, — точный тип объекта, а остальные
лее широкие) являются классами-
предками этого типа или реализуемыми им интерфейсам
Точным типом объекта не может быть интерфейс или абстрактный класс, потому что для них не
определены точные действия, выполняемые при вызове (некоторых) их операций.
Классы
(generic), т.е. иметь типовые параметры (соотв
C# 2.0). При создании объекта такого клас
параметров.
Примеры деклараций классов и интерфейсов
случаях определяется шаблонный интерфейс оч
класс, реализующий очередь на основе ссы
использования
такой
вующие
конструкции введены в Java 5 и
о указывать конкретные значения его типовых
я обоих языков приведены ниже. В обои
еди, которая хранит объекты типа-параметра,
структуры. Показан также пример
public interface Queue <T>
{
void put (T o);
T get ();
int size();
}
using System;
public interfac
public class LinkedQueue <T>
implements Qu
{
public void put
{
if(last == null
{
first = la
}
else
{
last.next = new
last = last.next;
}
}
public T get ()
{
if(first == null)
else
{
T result = first.o;
if(last == first) last = null
first = first.next;
{
public void Put (T o)
{
if nu
(last ==
{
as
first = l
}