Практическая работа №12 Полиморфизмы методов класса. Базовый, средний и высокий уровни
Download 224.81 Kb.
|
11.3 все уровни
- Bu sahifa navigatsiya:
- Вариант 4 Выполнил студент первого курса: Бабенков Илья Ташкент 2022 11.3. Полиморфизмы методов класса
Национальный Университет Узбекистана им. Мирзо Улуғбека Факультет Прикладной математики и интеллектуальных технологий Специальность: Компьютерные знания и технологии программирования Практическая работа №12 Полиморфизмы методов класса. Базовый, средний и высокий уровни. Вариант 4 Выполнил студент первого курса: Бабенков Илья Ташкент 2022 11.3. Полиморфизмы методов класса В C#, полиморфизм методов позволяет определять методы с одинаковым именем, но с разными реализациями, в разных классах или в одном классе с использованием наследования. Полиморфизм позволяет вызывать одноименные методы на объектах разных типов, и в зависимости от типа объекта будет вызван соответствующий метод. Есть два основных вида полиморфизма методов в C#: 1. Полиморфизм на основе наследования (наследуемый полиморфизм): Он основан на иерархии классов и возможности переопределения методов в производных классах. Когда метод в производном классе имеет ту же сигнатуру (имя и параметры) как и метод в базовом классе, происходит переопределение метода. При вызове метода у объекта производного класса будет выполнена реализация метода, определенная в этом классе, даже если ссылка на объект имеет тип базового класса. Пример: csharp class Shape { public virtual void Draw() { Console.WriteLine("Drawing a shape"); } } class Circle : Shape { public override void Draw() { Console.WriteLine("Drawing a circle"); } } class Rectangle : Shape { public override void Draw() { Console.WriteLine("Drawing a rectangle"); } } Shape shape1 = new Circle(); Shape shape2 = new Rectangle(); shape1.Draw(); // Вывод: "Drawing a circle" shape2.Draw(); // Вывод: "Drawing a rectangle" В этом примере класс `Shape` является базовым классом, а классы `Circle` и `Rectangle` являются производными классами. В производных классах переопределен метод `Draw()`, и при вызове метода на объектах разных типов будет вызываться соответствующая реализация метода. 2. Полиморфизм на основе интерфейсов (интерфейсный полиморфизм): Он основан на реализации интерфейсов. Интерфейс определяет набор методов, которые должны быть реализованы в классах, которые реализуют данный интерфейс. Классы, реализующие интерфейс, могут иметь собственную реализацию методов, но при работе с объектами через интерфейсная переменная будет вызываться реализация методов из интерфейса. Пример: csharp interface IResizable { void Resize(int width, int height); } class Image : IResizable { public void Resize(int width, int height) { Console.WriteLine($"Resizing image to {width}x{height}"); } } class Video : IResizable { public void Resize(int width , int height) { Console.WriteLine($"Resizing video to {width}x{height}"); } } IResizable resizable1 = new Image(); IResizable resizable2 = new Video(); resizable1.Resize(800, 600); // Вывод: "Resizing image to 800x600" resizable2.Resize(1920, 1080); // Вывод: "Resizing video to 1920x1080" В этом примере интерфейс `IResizable` определяет метод `Resize()`. Классы `Image` и `Video` реализуют этот интерфейс и предоставляют свою реализацию метода. При работе с объектами через интерфейсную переменную будет вызываться реализация метода из интерфейса. Оба вида полиморфизма методов позволяют достичь гибкости и переиспользования кода, так как позволяют работать с объектами разных типов, используя общий интерфейс или иерархию классов. Download 224.81 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling