Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Interface C#

Interface C#


Neste tutorial, aprenderemos sobre a interface C# com a ajuda de exemplos.

Em C#, uma interface é semelhante a uma classe abstrata. No entanto, ao contrário das classes abstratas, todos os métodos de uma interface são totalmente abstratos (método sem corpo).

Usamos o interface palavra-chave para criar uma interface. Por exemplo,

interface IPolygon {

  // method without body
  void calculateArea();
}

Aqui,

Implementando uma interface


Não podemos criar objetos de uma interface. Para usar uma interface, outras classes devem implementá-la. Igual ao C# Herança, usamos : símbolo para implementar uma interface. Por exemplo,
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);

    }
  }
}

Saída
Area of Rectangle: 20000

No exemplo acima, criamos uma interface chamada IPolygon . A interface contém um método calculateArea(int a, int b) sem implementação.

Aqui, o Retângulo classe implementa IPolygon . E fornece a implementação do calculateArea(int a, int b) método.

Observação :Devemos fornecer a implementação de todos os métodos de interface dentro da classe que a implementa.

Implementação de várias interfaces


Ao contrário da herança, uma classe pode implementar várias interfaces. Por exemplo,
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();
    }
  }
}

Saída
Area of Rectangle: 20000
Red Rectangle

No exemplo acima, temos duas interfaces, IPolygon e IColor .
class Rectangle : IPolygon, IColor {
  …
}

Implementamos ambas as interfaces no Rectangle classe separada por , .

Agora, Rectangle tem que implementar o método de ambas as interfaces.

Usando a variável de referência de uma interface


Podemos usar a variável de referência de uma interface. Por exemplo,
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);
    }
  }
}



Saída
Area of Rectangle: 20000

No exemplo acima, criamos uma interface chamada IPolygon . A interface contém um método calculateArea(int l, int b) sem implementação.
IPolygon r1 = new Rectangle();

Observe que usamos a variável de referência da interface IPolygon . Ele aponta para a classe Retangle que o implementa.

Embora não possamos criar objetos de uma interface, ainda podemos usar a variável de referência da interface que aponta para sua classe implementada.

Exemplo prático de interface


Vamos ver um exemplo mais prático de Interface C#.
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();
    }
  }
}

Saída
Area of Rectangle: 2700
Area of Square: 900

No programa acima, criamos uma interface chamada IPolygon . Tem um método abstrato calculateArea() .

Temos duas classes Quadrado e Retângulo que implementam o IPolygon interface.

A regra para calcular a área é diferente para cada polígono. Portanto, calculateArea() está incluído sem implementação.

Qualquer classe que implemente IPolygon deve fornecer uma implementação de calculateArea() . Portanto, a implementação do método na classe Rectangle é independente do método na classe Quadrado .

Vantagens da interface C#


Agora que sabemos o que são interfaces, vamos aprender por que as interfaces são usadas em C#.

Linguagem C

  1. A interface da linha de comando
  2. Interface Java
  3. Estrutura de coleções Java
  4. Interface de coleção Java
  5. Java NavigableSet Interface
  6. Expressões Java Lambda
  7. Interface para o Sensor Wireless Driveway
  8. Java - Interfaces
  9. Java 9 - Métodos de Interface Privada
  10. C# - Interfaces