рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Наследование. Конструктор по умолчанию. Назначение.

Наследование. Конструктор по умолчанию. Назначение. - раздел Программирование, Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки Насле́дование— Механизм Объектно-Ориентированного Прогр...

Насле́дование— механизм объектно-ориентированного программирования

позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса.

При наследовании каждый класс должен позаботиться о создании собственных конструкторов. Он не может в этом вопросе полагаться на родителя, поскольку, как правило, добавляет собственные поля, о которых родитель ничего не может знать. Конечно, если не задать конструкторов класса, то будет добавлен конструктор по умолчанию, инициализирующий все поля значениями по умолчанию. Но это редкая ситуация. Чаще всего, класс создает собственные конструкторы и, как правило, не один, задавая разные варианты инициализации полей.

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

Вызов конструктора родителя происходит не в теле конструктора, а в заголовке, пока еще не создан объект класса. Для вызова конструктора используется ключевое слово base, именующее родительский класс. Пример конструкторов класса Derived:

public Derived() {}

public Derived(string name, int cred, int deb):base (name, cred)

{ debet = deb; }

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

Итак, вызов конструктора - потомка приводит к цепочке вызовов конструкторов - предков, заканчивающейся вызовом конструктора прародителя. Затем в обратном порядке создаются объекты, начиная с объекта прародителя, и выполняются тела соответствующих конструкторов, инициализирующие поля и выполняющие другую работу этих конструкторов. Последним создается объект потомка и выполняется тело конструктора потомка.

При отсутствии ключевого слова base автоматически вызывается конструктор базового класса, действующий по умолчанию. Конструктор по-умолчанию потомка автоматически вызывает конструктор по-умолчанию предка, т.е. слово base не нужно.

Наследование (Генерализация) — объекты дочернего класса наследуют все свойства родительского класса.

Пример:

public class A { }

public interface I1 { }

public interface I2 { }

public class B : A, I1, I2 { }

Агрегация — объекты одного класса входят в объекты другого.

Пример:

class A

{

public class B : A { }

}

 

– Конец работы –

Эта тема принадлежит разделу:

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки

Класс это шаблон который определяет форму объекта Он задает как данные так и код который оперирует этими данными Объекты это экземпляры... Объявление объекта типа Building... Building house new Building...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Наследование. Конструктор по умолчанию. Назначение.

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.
Язык С# — это очередная ступень бесконечной эволюции языков программирования. Его создание вызвано процессом усовершенствования и адаптации, который определял разработку компьютерных языков в течен

Ссылка на самого себя
В C# зарезервированное слово this используется для ссылки на текущий объект. Необходимость такого слова связана в основном с разрешением конфликта имен в конструкторах. Конечно, избежать конфликта

Конструкторы и деструкторы. Функциональное назначение. Виды конструкторов.
Конструктор — неотъемлемый компонент класса. Нет классов без конструкторов. Конструктор представляет собой специальный метод класса, позволяющий создавать объекты класса. Одна из с

Объекты и их жизненный цикл. Создание и уничтожение объектов.
В объектно-ориентированном языке при связывании кода и данных создается объект. Код, данные или обе эти составляющие объекта могут быть закрытыми внутри него или открытыми. Закрытый код или закрыты

Основы обработки исключений
Управление С#-механизмом обработки исключений зиждется на четырех ключевых словах: try, catch, throw и finally. Они образуют взаимосвязанную подсистему, в которой использование одного из них предпо

Реализация интерфейсов
Итак, если интерфейс определен, один или несколько классов могут его реализовать. Чтобы реализовать интерфейс, нужно указать его имя после имени класса подобно тому, как при создании производного у

Коллизия имен
Проблема коллизии имен возникает, когда два или более интерфейса имеют методы с одинаковыми именами и сигнатурой. Если имена методов совпадают, но сигнатуры разные, то это не приводит к конфликтам

Наследование от общего предка
Проблема наследования от общего предка характерна, в первую очередь, для множественного наследования классов. Если класс C является наследником классов A и B, а те, в свой черед, являются наследник

Концепция типа данных. Соглашения о совместимости и приведение типов
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Концепция типа данных. Числовые типы данных.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Концепция типа данных. Символьные типы данных.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Структуры
public struct Book { public decimal price; public string title; public string author; } Классы — это ссылочные типы. Это означает, что к объект

Концепция типа данных. Явное и неявное преобразование типов.
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Концепция типа данных. Значащие (размерные) (Value type) и ссылочные (Reference type) типы данных. Упаковка и распаковка (Boxing, Unboxing).
Концепция типов данных состоит в том, что каждой информации приписывается тип, который описывается: 1) множеством допустимых значений типа, 2) набором операций дл

Принцип модульности программ. Глобальные и локальные имена. Область видимости имен. Выбор области видимости.
У класса две различные роли: модуля и типа данных. Класс — это модуль, архитектурная единица построения программной системы. Модульность построения — основное свойство программных систем. В ООП про

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги