Содержание
- 2. Интерфейсы Интерфейс (interface) – соглашение, определяющее поведение объекта. В нем задается набор абстрактных методов, свойств и
- 3. Синтаксис объявления интерфейса: [ атрибуты ] [ спецификаторы ] interface имя [ : предки ] тело_интерфейса
- 4. Общие сведения об интерфейсе Интерфейс может наследовать свойства нескольких интерфейсов, в этом случае предки перечисляются через
- 5. Выбор между интерфейсом и наследованием Если некий набор действий имеет смысл только для какой-то конкретной иерархии
- 6. Отличие интерфейса и абстрактного класса элементы интерфейса по умолчанию имеют спецификатор доступа public и не могут
- 7. Реализация интерфейса В C# поддерживается одиночное наследование для классов и множественное — для интерфейсов. Это позволяет
- 8. Пример interface IPlayer. // Интерфейс Игрок, //наследующие классы реализуют его по разному: { void play(); }
- 9. public class Guitar: IPlayer { public void play() { Console.WriteLine("Игра на гитаре"); } }
- 10. Неявная реализация интерфейса interface IPlayer{ void play(); } class Ball: Iplayer{ public void play(){……..}; // обязательно
- 11. Явная реализация интерфейса class Ball: IPlayer{ void Iplayer. play() {…………….} //тут спецификатор public отсутствует, потому что
- 12. При явной реализации вызов возможен лишь при явном приведении. Явная реализация интерфейса означает, что вызов метода
- 13. Пример явной реализации интерфейса interface I1 { void Method(); } interface I2 { int Method(); }
- 14. int I2.Method() // РЕАЛИЗУЕМ интерфейс явно { Console.WriteLine("Реализация интерфейса I2"); return 5; } } class Program
- 15. Результат работы программы
- 16. Операция is При работе с объектом через объект типа интерфейса бывает необходимо убедиться, что объект поддерживает
- 17. Операция as Используется для проверки поддерживает ли данный тип тот или иной интерфейс, если да, то
- 18. Итоги Интерфейсы на С# обеспечивают разработку классов, у которых могут быть общие функции, но при этом
- 19. Пример public interface Apartment { double Area{get; set;} void GetInfo(); }
- 20. public class ThreeRoom: Apartment { private double area; //площадь public int Area { get { return
- 21. public interface Luxury { int Price{get; set;} void GetInfo(); }
- 22. public class SuperThree: ThreeRoom, Apartment, Luxury { private double area; // private int price; //цена public
- 23. void ThreeRoom.GetInfo() { Console.WriteLine("Это квартира".); } void Apartment.GetInfo() { Console.WriteLine("Эта квартира стоит кучу денег!".); }
- 24. static void Main(string[] args) { SuperThree ob = new SuperThree(); ob.Price = 1000000; ob.Area = 450;
- 25. Использование стандартных интерфейсов Рассмотрим интерфейс ICloneable Если объект реализует данный интерфейс, значит его (объект) можно копировать.
- 26. class Money:ICloneable, IComparable { int som; public Money() { som = 0; } public Money(int s)
- 27. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ForLecture { public int Som { set{som=value;}
- 28. int IComparable.CompareTo(object o) { Money tmp = (Money)o; if (this.som > tmp.som) return 1; if (this.som
- 29. class Program { static void Main(string[] args) { Console.WriteLine("Исходные данные"); Money ob1=new Money(100); Console.WriteLine(ob1); Money ob2
- 30. Console.WriteLine("После клонирования"); Console.WriteLine(ob1); Console.WriteLine(ob2); Console.WriteLine("Изменяем свойства ob2.Som=500 "); ob2.Som = 500; Console.WriteLine(ob1); Console.WriteLine(ob2);
- 31. Console.WriteLine("Изменяем свойства ob1.Som=500 ob2.Som=1500 "); ob1.Som = 500; ob2.Som = 1500; Console.WriteLine(ob1); Console.WriteLine(ob2); } } }
- 32. Использование реализации интерфейса IComparable Console.WriteLine(" Массив объектов до сортировки"); Money[] mas = new Money[4]; mas[0] =
- 33. class Money:ICloneable { int som; int key; public Money() { som = 0; … public int
- 34. Клонирование объектов Клонирование – создание копии объекта. Копия объекта называется клоном Виды клонирования При присваивании одного
- 36. Скачать презентацию