Interfeyslarni qo'llash




Download 15,82 Kb.
Sana19.11.2023
Hajmi15,82 Kb.
#101324
Bog'liq
interfeyslar


Interfeyslarni qo'llash
Интерфейс представляет некое описание типа, набор компонентов, который должен иметь тип данных. И, собственно, мы не можем создавать объекты интерфейса напрямую с помощью конструктора, как например, в классах:
Interfeys ma'lumotlar turiga ega bo'lishi kerak bo'lgan turdagi tavsifni, komponentlar to'plamini ifodalaydi. Shuningdek, biz konstruktor yordamida, masalan, sinflarda, interfeys ob'ektlarini yaratа olmaymiz:
IMovable m = new IMovable(); // ! Xato, bunday qilish mumkin emas:
Хulosa qilsak, interfeys sinf va tuzilmalarda amalga oshirish uchun mo‘ljallangan. Masalan, quyidagi IMovable interfeysini oling:
interface IMovable
{
void Move();
}
Shundan so‘ng bir sinf yoki tuzilma mazkur interfeysni qo‘llashi mumkin:
//sinfda interfeysni qo‘llash
class Person : IMovable
{
public void Move()
{
Console.WriteLine (“Odam yuradi”);
}
}
//strukturada interfeysni qo‘llash
struct Car : IMovable
{
public void Move()
{
Console.WriteLine (“Mashina yuradi”);
}
}
Interfeysdan foydalanganda, merosda bo'lgani kabi, sinf yoki struktura nomidan keyin ikkita nuqta, so'ngra ishlatilgan interfeyslarning nomlari ko'rsatiladi. Bunday holda, sinf ishlatilgan interfeyslarning barcha usullari va xususiyatlarini bajarishi kerak, agar bu usullar va xususiyatlar standart bajarilmasa.
Agar interfeys usullari va xossalari faqatgina publik modifikatoriga ega bo‘lmagan bo‘lsa, ushbu usul va xususiyatlarni amalga oshirishda ularga faqat public modifikatorini qo‘llash mumkin.

Dasturda interfeysdan foydalanish :


using System;
namespace HelloApp
{
interface IMovable
{
void Move();
}
class Person : IMovable
{
public void Move()
{
Console.WriteLine("Odam yuradi ");
}
}
struct Car : IMovable
{
public void Move()
{
Console.WriteLine("Mashina yuradi ");
}
}
class Program
{
static void Action(IMovable movable)
{
movable.Move();
}
static void Main(string[] args)
{
Person person = new Person();
Car car = new Car();
Action(person);
Action(car);
Console.Read();
}
}
}
Download 15,82 Kb.




Download 15,82 Kb.