🗊Презентация Наследование ( C#, Лекция 2)

Нажмите для полного просмотра!
Наследование ( C#, Лекция 2), слайд №1Наследование ( C#, Лекция 2), слайд №2Наследование ( C#, Лекция 2), слайд №3Наследование ( C#, Лекция 2), слайд №4Наследование ( C#, Лекция 2), слайд №5Наследование ( C#, Лекция 2), слайд №6Наследование ( C#, Лекция 2), слайд №7Наследование ( C#, Лекция 2), слайд №8Наследование ( C#, Лекция 2), слайд №9Наследование ( C#, Лекция 2), слайд №10Наследование ( C#, Лекция 2), слайд №11Наследование ( C#, Лекция 2), слайд №12Наследование ( C#, Лекция 2), слайд №13Наследование ( C#, Лекция 2), слайд №14Наследование ( C#, Лекция 2), слайд №15Наследование ( C#, Лекция 2), слайд №16Наследование ( C#, Лекция 2), слайд №17Наследование ( C#, Лекция 2), слайд №18Наследование ( C#, Лекция 2), слайд №19Наследование ( C#, Лекция 2), слайд №20Наследование ( C#, Лекция 2), слайд №21Наследование ( C#, Лекция 2), слайд №22Наследование ( C#, Лекция 2), слайд №23Наследование ( C#, Лекция 2), слайд №24Наследование ( C#, Лекция 2), слайд №25Наследование ( C#, Лекция 2), слайд №26Наследование ( C#, Лекция 2), слайд №27Наследование ( C#, Лекция 2), слайд №28Наследование ( C#, Лекция 2), слайд №29Наследование ( C#, Лекция 2), слайд №30Наследование ( C#, Лекция 2), слайд №31Наследование ( C#, Лекция 2), слайд №32Наследование ( C#, Лекция 2), слайд №33Наследование ( C#, Лекция 2), слайд №34Наследование ( C#, Лекция 2), слайд №35Наследование ( C#, Лекция 2), слайд №36Наследование ( C#, Лекция 2), слайд №37Наследование ( C#, Лекция 2), слайд №38Наследование ( C#, Лекция 2), слайд №39Наследование ( C#, Лекция 2), слайд №40Наследование ( C#, Лекция 2), слайд №41Наследование ( C#, Лекция 2), слайд №42Наследование ( C#, Лекция 2), слайд №43Наследование ( C#, Лекция 2), слайд №44Наследование ( C#, Лекция 2), слайд №45Наследование ( C#, Лекция 2), слайд №46Наследование ( C#, Лекция 2), слайд №47Наследование ( C#, Лекция 2), слайд №48Наследование ( C#, Лекция 2), слайд №49Наследование ( C#, Лекция 2), слайд №50Наследование ( C#, Лекция 2), слайд №51Наследование ( C#, Лекция 2), слайд №52Наследование ( C#, Лекция 2), слайд №53Наследование ( C#, Лекция 2), слайд №54

Содержание

Вы можете ознакомиться и скачать презентацию на тему Наследование ( C#, Лекция 2). Доклад-сообщение содержит 54 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекция 2
Описание слайда:
Лекция 2

Слайд 2





Наследование
позволяет создавать производные классы (классы наследники), взяв за основу все методы и элементы базового класса (класса родителя). 
Объекты производного класса  свободно могут использовать всё, что создано и отлажено в базовом классе.
Описание слайда:
Наследование позволяет создавать производные классы (классы наследники), взяв за основу все методы и элементы базового класса (класса родителя). Объекты производного класса свободно могут использовать всё, что создано и отлажено в базовом классе.

Слайд 3





Наследование
При этом, мы можем в производный класс,  дописать необходимый код для усовершенствования программы: добавить новые элементы, методы и т.д.. 
Базовый класс останется нетронутым.
Описание слайда:
Наследование При этом, мы можем в производный класс, дописать необходимый код для усовершенствования программы: добавить новые элементы, методы и т.д.. Базовый класс останется нетронутым.

Слайд 4





Терминология
Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). 
Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).
Описание слайда:
Терминология Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).

Слайд 5





Виды наследования
Описание слайда:
Виды наследования

Слайд 6





Наследование от класса
Производный класс наследует от базового класса ВСЕ, что он имеет. Другое дело, что воспользоваться в производном классе можно не всем наследством. Например, объект класса наследника в принципе НЕ может получить доступ к private данным — членам и функциям — членам класса-родителя.
Описание слайда:
Наследование от класса Производный класс наследует от базового класса ВСЕ, что он имеет. Другое дело, что воспользоваться в производном классе можно не всем наследством. Например, объект класса наследника в принципе НЕ может получить доступ к private данным — членам и функциям — членам класса-родителя.

Слайд 7





Как организовать наследование?
Описать базовый класс
class ClassParent
    {
        private int x;
        protected double y;
        public int getX { get { return x; } }
    }
Описание слайда:
Как организовать наследование? Описать базовый класс class ClassParent { private int x; protected double y; public int getX { get { return x; } } }

Слайд 8





Как организовать наследование?
Создать класс и унаследоваться от базового
class ClassChild : ClassParent
    {
    }
Описание слайда:
Как организовать наследование? Создать класс и унаследоваться от базового class ClassChild : ClassParent { }

Слайд 9





protected
Доступ к члену с модификатором protected возможен внутри класса и из производных экземпляров класса.
Описание слайда:
protected Доступ к члену с модификатором protected возможен внутри класса и из производных экземпляров класса.

Слайд 10





protected
У родительского класса есть поле y типа double с модификатором доступа protected
Описание слайда:
protected У родительского класса есть поле y типа double с модификатором доступа protected

Слайд 11





protected
Дочерний класс имеет доступ к этому полю
Описание слайда:
protected Дочерний класс имеет доступ к этому полю

Слайд 12





protected
Но извне это поле недоступно
Описание слайда:
protected Но извне это поле недоступно

Слайд 13





Доступ к базовомоу классу
Доступ к членам базового класса во вложенном классе можно получить при помощи ключевого слова base.
Описание слайда:
Доступ к базовомоу классу Доступ к членам базового класса во вложенном классе можно получить при помощи ключевого слова base.

Слайд 14





Переопределение функций
Изменим базовый класс, добавим метод
Описание слайда:
Переопределение функций Изменим базовый класс, добавим метод

Слайд 15





Переопределение функций
Переопределим его в наследнике, используя ключевое слово new
Описание слайда:
Переопределение функций Переопределим его в наследнике, используя ключевое слово new

Слайд 16





Переопределение функций
Теперь при вызове метода nothingMethod у объекта класса ClassChild будет вызываться метод не родительского класса, а дочернего
Описание слайда:
Переопределение функций Теперь при вызове метода nothingMethod у объекта класса ClassChild будет вызываться метод не родительского класса, а дочернего

Слайд 17





Виртуальные методы
Ключевое слово virtual используется для изменения объявлений методов, свойств, индексаторов и событий и разрешения их переопределения в производном классе.
Описание слайда:
Виртуальные методы Ключевое слово virtual используется для изменения объявлений методов, свойств, индексаторов и событий и разрешения их переопределения в производном классе.

Слайд 18





Виртуальные методы
Модификатор virtual нельзя использовать с модификаторами static, abstract, private или override.  В следующем примере показано виртуальное свойство. 
Описание слайда:
Виртуальные методы Модификатор virtual нельзя использовать с модификаторами static, abstract, private или override.  В следующем примере показано виртуальное свойство. 

Слайд 19





Виртуальные методы
В родительском классе создаем метод с модификатором vitrual
Описание слайда:
Виртуальные методы В родительском классе создаем метод с модификатором vitrual

Слайд 20





Виртуальные методы
А в дочернем классе переопределяем его, используя модификатор override
Описание слайда:
Виртуальные методы А в дочернем классе переопределяем его, используя модификатор override

Слайд 21





Почему обязательно override
Описание слайда:
Почему обязательно override

Слайд 22





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

Слайд 23





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

Слайд 24





Конструктор как метод
Ничего не возвращает
Называется также как и класс
Описание слайда:
Конструктор как метод Ничего не возвращает Называется также как и класс

Слайд 25





Деструктор, особые приметы
Если не прописать, создается по умолчанию для отчистки полей.
Имеется только один деструктор в классе (конструкторов может быть много)
Описание слайда:
Деструктор, особые приметы Если не прописать, создается по умолчанию для отчистки полей. Имеется только один деструктор в классе (конструкторов может быть много)

Слайд 26





Деструктор как метод
Перед деструктором ставится значок ‘~’
Имеет имя, такое же как класс
Не возвращает ничего
Описание слайда:
Деструктор как метод Перед деструктором ставится значок ‘~’ Имеет имя, такое же как класс Не возвращает ничего

Слайд 27





Выбор конструктора
Построение объектов базового класса всегда выполняется до любого производного класса. Так, конструктор базового класса выполняется перед конструктором производного класса. Если базовый класс имеет несколько конструкторов, производный класс может выбрать вызываемый конструктор.
Описание слайда:
Выбор конструктора Построение объектов базового класса всегда выполняется до любого производного класса. Так, конструктор базового класса выполняется перед конструктором производного класса. Если базовый класс имеет несколько конструкторов, производный класс может выбрать вызываемый конструктор.

Слайд 28





Выбор конструктора
Дополним базовый класс двумя конструкторами, один ничего не принимает, другой принимает 2 параметра
Описание слайда:
Выбор конструктора Дополним базовый класс двумя конструкторами, один ничего не принимает, другой принимает 2 параметра

Слайд 29





Выбор конструктора
Теперь укажем, что в наследнике, перед вызов его конструктора, вызывался конструктор родителя с двумя параметрами
Описание слайда:
Выбор конструктора Теперь укажем, что в наследнике, перед вызов его конструктора, вызывался конструктор родителя с двумя параметрами

Слайд 30





Шаблон
<мод. доступа> class <имя кл.> : <род. кл.>
{
	 <мод. доступа> <имя кл.>(<параметр.>) : base(<параметр.>)
	{
		//код
	}
}
Описание слайда:
Шаблон <мод. доступа> class <имя кл.> : <род. кл.> { <мод. доступа> <имя кл.>(<параметр.>) : base(<параметр.>) { //код } }

Слайд 31





Модификатор sealed*
При применении к классу, модификатор sealed запрещает другим классам наследовать от этого класса.
*Если вы его применяете, то у вас большие проблемы с архитектурой проекта!
Описание слайда:
Модификатор sealed* При применении к классу, модификатор sealed запрещает другим классам наследовать от этого класса. *Если вы его применяете, то у вас большие проблемы с архитектурой проекта!

Слайд 32





Пример
Если к нашему родителю применить этот модификатор, то его члены перестанут быть доступны наследнику
Описание слайда:
Пример Если к нашему родителю применить этот модификатор, то его члены перестанут быть доступны наследнику

Слайд 33





abstract
Ключевое слово abstract позволяет создавать классы и методы классов, которые являются неполными и должны быть реализованы в производном классе.
Описание слайда:
abstract Ключевое слово abstract позволяет создавать классы и методы классов, которые являются неполными и должны быть реализованы в производном классе.

Слайд 34





Абстрактный класс
Создавать объекты от абстрактного класса нельзя. Назначение абстрактного класса заключается в предоставлении общего определения для базового класса, которое могут совместно использовать несколько производных классов.
Описание слайда:
Абстрактный класс Создавать объекты от абстрактного класса нельзя. Назначение абстрактного класса заключается в предоставлении общего определения для базового класса, которое могут совместно использовать несколько производных классов.

Слайд 35





Пример
Описание слайда:
Пример

Слайд 36





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

Слайд 37





Создание интерфейса
Интерфейс объявляется через ключевое слова interface.
Все методы интерфейса публичные!
Описание слайда:
Создание интерфейса Интерфейс объявляется через ключевое слова interface. Все методы интерфейса публичные!

Слайд 38





Создание интерфейса
Интерфейс не может содержать полей!
Описание слайда:
Создание интерфейса Интерфейс не может содержать полей!

Слайд 39





Создание интерфейса
Но может содержать свойства
Описание слайда:
Создание интерфейса Но может содержать свойства

Слайд 40





Наследование от интерфейса
Если мы просто унаследуемся от интерфейса, не определив ни одного метода, то получим ошибку
Описание слайда:
Наследование от интерфейса Если мы просто унаследуемся от интерфейса, не определив ни одного метода, то получим ошибку

Слайд 41





Наследование от интерфейса
Даже определив несколько методов интерфейса, но не все, все равно будет ошибка
Описание слайда:
Наследование от интерфейса Даже определив несколько методов интерфейса, но не все, все равно будет ошибка

Слайд 42





Наследование от интерфейса
Только определив все методы и свойства, ошибки не будет
Описание слайда:
Наследование от интерфейса Только определив все методы и свойства, ошибки не будет

Слайд 43





Модификатор доступа
Все методы, наследуемые от интерфейса, должны иметь публичный доступ
Описание слайда:
Модификатор доступа Все методы, наследуемые от интерфейса, должны иметь публичный доступ

Слайд 44





Множественное наследование
Если потомок может наследоваться только от одного обычного или абстрактного класса, то в случае с интерфейсами, он может наследоваться сразу же от нескольких интерфейсов.
Но тут может возникнуть проблемка…
Описание слайда:
Множественное наследование Если потомок может наследоваться только от одного обычного или абстрактного класса, то в случае с интерфейсами, он может наследоваться сразу же от нескольких интерфейсов. Но тут может возникнуть проблемка…

Слайд 45





Множественное наследование
Описание слайда:
Множественное наследование

Слайд 46





Множественное наследование
Если в интерфейсах присутствуют методы с одинаковыми названиями, как понять метод какого из интерфейсов был реализован в классе-наследнике?
Описание слайда:
Множественное наследование Если в интерфейсах присутствуют методы с одинаковыми названиями, как понять метод какого из интерфейсов был реализован в классе-наследнике?

Слайд 47





Множественное наследование
 возможную неоднозначность в именах членов можно разрешить при помощи полного квалификатора имени свойства или метода.
Описание слайда:
Множественное наследование возможную неоднозначность в именах членов можно разрешить при помощи полного квалификатора имени свойства или метода.

Слайд 48





Как вызвать такой метод
Оператор as используется для выполнения определенных преобразований типов между совместимыми ссылочными типами или тип, допускающий значение NULL.
Оператор is проверяет совместимость объекта с заданным типом.
Описание слайда:
Как вызвать такой метод Оператор as используется для выполнения определенных преобразований типов между совместимыми ссылочными типами или тип, допускающий значение NULL. Оператор is проверяет совместимость объекта с заданным типом.

Слайд 49





is и as. Пример
С помощью оператора is убеждаемся, что наш объект относится к нужному интерфейсу, а потом приводим его к этому интерфейсу для вызова нужного метода
Описание слайда:
is и as. Пример С помощью оператора is убеждаемся, что наш объект относится к нужному интерфейсу, а потом приводим его к этому интерфейсу для вызова нужного метода

Слайд 50





Особенности
Оператор as подобен оператору приведения.  Однако если преобразование невозможно, то as возвращает null вместо вызова исключения.
Если предоставленное выражение отлично от NULL и предоставленный объект может быть приведен к предоставленному типу не вызывая исключение, выражение is принимает значение true.
Описание слайда:
Особенности Оператор as подобен оператору приведения.  Однако если преобразование невозможно, то as возвращает null вместо вызова исключения. Если предоставленное выражение отлично от NULL и предоставленный объект может быть приведен к предоставленному типу не вызывая исключение, выражение is принимает значение true.

Слайд 51





Общий тип
Создадим простой класс без содержимого
Теперь создадим объект от этого класса и посмотрим что в нем есть
Описание слайда:
Общий тип Создадим простой класс без содержимого Теперь создадим объект от этого класса и посмотрим что в нем есть

Слайд 52





Object
В нем оказалось 4 метода, хотя мы ничего не прописывали. Откуда они?
В унифицированной системе типов C# все типы, предопределенные и пользовательские, наследуют непосредственно или косвенно от Object.
Описание слайда:
Object В нем оказалось 4 метода, хотя мы ничего не прописывали. Откуда они? В унифицированной системе типов C# все типы, предопределенные и пользовательские, наследуют непосредственно или косвенно от Object.

Слайд 53





Object
Всеобщий базовый тип. Обязательная составляющая любого типа в .NET. Функциональные характеристики типа System.Object приводятся в таблице.
Описание слайда:
Object Всеобщий базовый тип. Обязательная составляющая любого типа в .NET. Функциональные характеристики типа System.Object приводятся в таблице.

Слайд 54





Object
Описание слайда:
Object



Похожие презентации
Mypresentation.ru
Загрузить презентацию