ТОР 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 делается в реализациях классов.
Не нашли, что искали? Воспользуйтесь поиском:
|