Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Абстрактные классы, структуры и интерфейсы




Абстрактные классы используются в C# также как и в С++. Тело хотя бы одного метода должно отсутствовать. Применение же виртуальных методов полностью совпадает в обоих языках. Абстрактный класс декларируется указанием ключевого слова abstract перед словом class, а абстрактный метод – ключевым словом abstract перед указанием типа метода. Такой метод обязательно должен быть переопределен в производных классах.

Пример

public abstract double area(); // декларация абстрактного метода в классе

 

Классы - ссылочные типы данных. Чтобы иметь возможность передачи неоднородных совокупностей данных по значению в вызовах методов, - используются структуры. Структуры могут создаваться автоматически либо оператором new. Объявляются структуры подобно классам, могут реализовывать один или несколько интерфейсов и содержать поля свойств, методы, индексаторы и т.п. Наследование для структур не поддерживается.

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

Пример

public interface ISeries

{

int getNext();

void reset();

void setStart(int x);

}

 

Реализация интерфейса:

class ByTwos: ISeries

{

int start;

int val;

public ByTwos()

{

start = 0;

val = 0;

}

public int getNext()

{

val += 2;

return val;

}

public void reset()

{

val = start;

}

public void setStart(int x)

{

start = x;

val = start;

}

}

 

В программах можно объявлять ссылочные переменные интерфейсного типа и такие переменные могут ссылаться на любой объект тех классов, которые реализуют этот интерфейс. Т.о. реализуется один из видов полиморфизма именований. В интерфейсах можно специфицировать свойства и индексаторы. Для них можно указать методы get и set, соответственно, для чтения и установки значений. Реализация методов get и set делается в реализациях классов.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных