1-amaliy ish. Abstrakt sinflar yaratish va ishlatish. Oddiy darslarga qo'shimcha ravishda C# ning mavhum sinflari


Download 25.88 Kb.
bet4/4
Sana21.09.2023
Hajmi25.88 Kb.
#1683325
1   2   3   4
Abstrakt sinf namunasi
Darslikka misol qilib geometrik figuralar sistemasini keltirish mumkin. Aslida, bunday geometrik shakl yo'q. Doira, to'rtburchak, kvadrat bor, lekin oddiygina raqam yo'q. Biroq, aylana ham, to'rtburchak ham umumiy narsaga ega va ular raqamlardir:

// абстрактный класс фигуры
abstract class Shape
{
// абстрактный метод для получения периметра
public abstract double GetPerimeter();
// абстрактный метод для получения площади
public abstract double GetArea();
}
// производный класс прямоугольника
class Rectangle : Shape
{
public float Width { get; set; }
public float Height { get; set; }
// переопределение получения периметра
public override double GetPerimeter() => Width * 2 + Height * 2;
// переопрелеление получения площади
public override double GetArea() => Width * Height;
}
// производный класс окружности
class Circle : Shape
{
public double Radius { get; set; }
// переопределение получения периметра
public override double GetPerimeter() => Radius * 2 * 3.14;
// переопрелеление получения площади
public override double GetArea() => Radius * Radius * 3.14;
}

Ilova sinflari:

var rectanle = new Rectangle { Width = 20, Height = 20 };
var circle = new Circle { Radius = 200 };
PrintShape(rectanle); // Perimeter: 80 Area: 400
PrintShape(circle); // Perimeter: 1256 Area: 125600
void PrintShape(Shape shape)
{
Console.WriteLine($"Perimeter: {shape.GetPerimeter()} Area: {shape.GetArea()}");
}

Download 25.88 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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