Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

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

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Пятое занятие

наследованиеНаследование (inheritance) является одним из ключевых моментов ООП. Его смысл состоит в том, что мы можем расширить функциональность уже существующих классов за счет добавления нового функционала или изменения старого.
Пятое занятие наследованиеНаследование (inheritance) является одним из ключевых моментов ООП. Его смысл состоит в Простой классclass Person{	private string _name;	public string Name	{		get { return _name; }	}}Класс представляет Класс работникclass Employee : Person{}Теперь класс Employee «Является» человеком. То есть мы Примерstatic void Main(string[] args){     Person p = new Person { FirstName = Ограничения наследованияНе поддерживается множественное наследование, класс может наследоваться только от одного класса. Обращение к полям родителяМы не можем обратиться к приватным полям родителя, можем Ключевое слово baseСлово base используется для доступа к полям и методам класса Добавим конструктор в Personpublic Person(string name)	{		_name = name;	} Вызов базового конструктораclass Employee : Person{  public string Company {get; set;} Соответственно, если мы в базовом классе создали конструктор с параметрами, мы в полиморфизмПолиморфизм является третьим ключевым аспектом объектно-ориентированного программирования и предполагает способность к изменению Допустим в базовом классе есть метод виртуальныйclass A{	public virtual void Smth(int arg)	{		Console.WriteLine(“Base: ” + arg);	}} Теперь мы можем изменить поведение данного метода в производныхclass B : A
Слайды презентации

Слайд 2 наследование
Наследование (inheritance) является одним из ключевых моментов ООП.

наследованиеНаследование (inheritance) является одним из ключевых моментов ООП. Его смысл состоит

Его смысл состоит в том, что мы можем расширить

функциональность уже существующих классов за счет добавления нового функционала или изменения старого.

Слайд 3 Простой класс
class Person
{
private string _name;
public string Name
{
get {

Простой классclass Person{	private string _name;	public string Name	{		get { return _name; }	}}Класс

return _name; }
}
}
Класс представляет обычную модель человека
Только имя, ну

и пусть

Слайд 4 Класс работник
class Employee : Person
{

}
Теперь класс Employee «Является»

Класс работникclass Employee : Person{}Теперь класс Employee «Является» человеком. То есть

человеком. То есть мы можем работать с классом Employee

так же, как и с Person

Слайд 5 Пример
static void Main(string[] args)
{
     Person p = new

Примерstatic void Main(string[] args){     Person p = new Person { FirstName

Person { FirstName = "Bill", LastName = "Gates" };
 

p.Display();
     p = new Employee { FirstName = "Denis", LastName = "Ritchi" };
     p.Display();
     Console.Read();
}

И поскольку объект Employee является также и объектом Person, то мы можем так определить переменную:
Person p = new Employee().


Слайд 6 Ограничения наследования
Не поддерживается множественное наследование, класс может наследоваться

Ограничения наследованияНе поддерживается множественное наследование, класс может наследоваться только от одного

только от одного класса. Хотя проблема множественного наследования реализуется

с помощью концепции интерфейсов, о которых мы поговорим позже.
При создании производного класса надо учитывать тип доступа к базовому классу - тип доступа к производному классу должен быть таким же, как и у базового класса, или более строгим. То есть, если базовый класс у нас имеет тип доступа internal, то производный класс может иметь тип доступа internal или private, но не public.
Если класс объявлен с модификатором sealed, то от этого класса нельзя наследовать и создавать производные классы. Например, следующий класс не допускает создание наследников


Слайд 7 Обращение к полям родителя
Мы не можем обратиться к

Обращение к полям родителяМы не можем обратиться к приватным полям родителя,

приватным полям родителя, можем обращаться только к public, protected,

internal, protected internal

class Employee : Person
{
    public void Display()
    {
        Console.WriteLine(_firstName);
    }
}


Слайд 8 Ключевое слово base
Слово base используется для доступа к

Ключевое слово baseСлово base используется для доступа к полям и методам

полям и методам класса – родителя.
К его конструкторам, поведению.


Слайд 9 Добавим конструктор в Person
public Person(string name)
{
_name = name;
}

Добавим конструктор в Personpublic Person(string name)	{		_name = name;	}

Слайд 10 Вызов базового конструктора
class Employee : Person
{
public

Вызов базового конструктораclass Employee : Person{ public string Company {get; set;}

string Company {get; set;}

public Employee(string name, string

company) : base(name)
{
Company = company;
}
}



Слайд 11 Соответственно, если мы в базовом классе создали конструктор

Соответственно, если мы в базовом классе создали конструктор с параметрами, мы

с параметрами, мы в производных конструкторах всегда должны его

вызывать.
Конструктор без параметров, если он есть, выполнится сам, без нашего вмешательства

Слайд 12 полиморфизм
Полиморфизм является третьим ключевым аспектом объектно-ориентированного программирования и

полиморфизмПолиморфизм является третьим ключевым аспектом объектно-ориентированного программирования и предполагает способность к

предполагает способность к изменению функционала, унаследованного от базового класса.

Полиморфизм предполагает определение полиморфного интерфейса в базовом классе - набор членов класса, которые могут быть переопределены в классе-наследнике. Методы, которые мы хотим сделать доступными для переопределения, в базовом классе помечается модификатором virtual. Такие методы называют виртуальными. Они и представляют полиморфный интерфейс.

Слайд 13 Допустим в базовом классе есть метод виртуальный
class A
{
public virtual

Допустим в базовом классе есть метод виртуальныйclass A{	public virtual void Smth(int arg)	{		Console.WriteLine(“Base: ” + arg);	}}

void Smth(int arg)
{
Console.WriteLine(“Base: ” + arg);
}
}


  • Имя файла: pyatoe-zanyatie.pptx
  • Количество просмотров: 78
  • Количество скачиваний: 0