Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

antarmuka C#

Antarmuka C#

Dalam tutorial ini, kita akan belajar tentang antarmuka C# dengan bantuan contoh.

Dalam C#, sebuah antarmuka mirip dengan kelas abstrak. Namun, tidak seperti kelas abstrak, semua metode antarmuka sepenuhnya abstrak (metode tanpa isi).

Kami menggunakan interface kata kunci untuk membuat antarmuka. Misalnya,

interface IPolygon {

  // method without body
  void calculateArea();
}

Di sini,


Mengimplementasikan Antarmuka

Kami tidak dapat membuat objek antarmuka. Untuk menggunakan antarmuka, kelas lain harus mengimplementasikannya. Sama seperti di C# Inheritance, kami menggunakan : simbol untuk mengimplementasikan antarmuka. Misalnya,

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int l, int b);

  }

  class Rectangle : IPolygon {

    // implementation of methods inside interface
    public void calculateArea(int l, int b) {

      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();
    
      r1.calculateArea(100, 200);

    }
  }
}

Keluaran

Area of Rectangle: 20000

Dalam contoh di atas, kami telah membuat antarmuka bernama IPolygon . Antarmuka berisi metode calculateArea(int a, int b) tanpa implementasi.

Di sini, Persegi Panjang kelas mengimplementasikan IPolygon . Dan, menyediakan implementasi calculateArea(int a, int b) metode.

Catatan :Kita harus menyediakan implementasi semua metode antarmuka di dalam kelas yang mengimplementasikannya.


Mengimplementasikan Banyak Antarmuka

Tidak seperti pewarisan, kelas dapat mengimplementasikan banyak antarmuka. Misalnya,

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int a, int b);

  }

  interface IColor {

    void getColor();
  }
   
  // implements two interface
  class Rectangle : IPolygon, IColor {

    // implementation of IPolygon interface
    public void calculateArea(int a, int b) {

      int area = a * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }

    // implementation of IColor interface
    public void getColor() {

      Console.WriteLine("Red Rectangle");
            
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();
    
      r1.calculateArea(100, 200);
      r1.getColor();
    }
  }
}

Keluaran

Area of Rectangle: 20000
Red Rectangle

Pada contoh di atas, kita memiliki dua antarmuka, IPolygon dan IColor .

class Rectangle : IPolygon, IColor {
  …
}

Kami telah mengimplementasikan kedua antarmuka di Rectangle kelas dipisahkan oleh , .

Sekarang, Rectangle harus mengimplementasikan metode kedua antarmuka.


Menggunakan variabel referensi antarmuka

Kita dapat menggunakan variabel referensi dari sebuah antarmuka. Misalnya,

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea(int l, int b);

  }

  class Rectangle : IPolygon {

    // implementation of methods inside interface
    public void calculateArea(int l, int b) {

      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {
       
      // using reference variable of interface
      IPolygon r1 = new Rectangle();
    
      r1.calculateArea(100, 200);
    }
  }
}

Keluaran

Area of Rectangle: 20000

Dalam contoh di atas, kami telah membuat antarmuka bernama IPolygon . Antarmuka berisi metode calculateArea(int l, int b) tanpa implementasi.

IPolygon r1 = new Rectangle();

Perhatikan, kami telah menggunakan variabel referensi antarmuka IPolygon . Ini menunjuk ke kelas Rectangle yang mengimplementasikannya.

Meskipun kita tidak dapat membuat objek antarmuka, kita masih dapat menggunakan variabel referensi antarmuka yang menunjuk ke kelas yang diimplementasikan.


Contoh Praktis Antarmuka

Mari kita lihat contoh Antarmuka C# yang lebih praktis.

using System;
namespace CsharpInterface {

  interface IPolygon {
    // method without body
    void calculateArea();

  }   
  // implements interface
  class Rectangle : IPolygon {

    // implementation of IPolygon interface
    public void calculateArea() {
      
      int l = 30;
      int b = 90;
      int area = l * b;
      Console.WriteLine("Area of Rectangle: " + area);
    }
  }

  class Square : IPolygon {

    // implementation of IPolygon interface
    public void calculateArea() {
      
      int l = 30;
      int area = l * l;
      Console.WriteLine("Area of Square: " + area);
    }
  }

  class Program {
    static void Main (string [] args) {

      Rectangle r1 = new Rectangle();  
      r1.calculateArea();

      Square s1 = new Square();  
      s1.calculateArea();
    }
  }
}

Keluaran

Area of Rectangle: 2700
Area of Square: 900

Dalam program di atas, kami telah membuat antarmuka bernama IPolygon . Ia memiliki metode abstrak calculateArea() .

Kami memiliki dua kelas Persegi dan Persegi Panjang yang mengimplementasikan IPolygon antarmuka.

Aturan untuk menghitung luas berbeda untuk setiap poligon. Oleh karena itu, calculateArea() disertakan tanpa implementasi.

Setiap kelas yang mengimplementasikan IPolygon harus menyediakan implementasi calculateArea() . Oleh karena itu, implementasi metode di kelas Rectangle tidak bergantung pada metode di kelas Persegi .


Kelebihan antarmuka C#

Sekarang setelah kita mengetahui apa itu antarmuka, mari kita pelajari mengapa antarmuka digunakan dalam C#.


Bahasa C

  1. Antarmuka Baris Perintah
  2. Antarmuka Jawa
  3. Kerangka Koleksi Java
  4. Antarmuka Koleksi Java
  5. Antarmuka Java NavigableSet
  6. Ekspresi Java Lambda
  7. Antarmuka ke Sensor Jalan Nirkabel
  8. Java - Antarmuka
  9. Java 9 - Metode Antarmuka Pribadi
  10. C# - Antarmuka