Практическая работа №12 Полиморфизмы методов класса. Базовый, средний и высокий уровни


Download 224.81 Kb.
bet1/4
Sana21.06.2023
Hajmi224.81 Kb.
#1645005
TuriПрактическая работа
  1   2   3   4
Bog'liq
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:
  1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling