Interfaces (guia de programação C#)
Interfaces são definidas usando o interfacepalavra- chave, sistema autônomo mostrado no exemplo a seguir:
interface IEquatable<T>
{
bool Equals(T obj);
}
Interfaces descrevem um agrupar de funcionalidades relacionadas podem pertencer a qualquer classe or struct.Interfaces podem consistir em métodos, propriedades, eventos, os indexadores ou qualquer combinação desses tipos de quatro membro.Uma interface não pode conter campos.Membros de uma interface são automaticamente públicos.
Quando classe ou struct é considerado herdam uma interface, isso significa que classe ou struct fornece uma implementação para todos os membros definidos pela interface.A interface do próprio não oferece nenhuma funcionalidade class ou struct pode herdar da maneira que a funcionalidade da classe base pode ser herdada.No entanto, se uma classe base implementa uma interface, a classe derivada herdará essa implementação.
Classes e structs podem herdar de interfaces de uma forma parecida com a que classes herdam de uma classe base ou de uma struct, porém, há duas exceções:
Uma classe ou struct podem herdar mais de uma interface.
Quando uma classe ou struct herdam uma interface, é herdado apenas o nome dos métodos e associações, porque as interfaces não contém implementações próprias.Por exemplo:
public class Car : IEquatable<Car> { public string Make {get; set;} public string Model { get; set; } public string Year { get; set; } // Implementation of IEquatable<T> interface public bool Equals(Car car) { if (this.Make == car.Make && this.Model == car.Model && this.Year == car.Year) { return true; } else return false; } }
Para implementar um membro de uma interface, o membro correspondente na classe deve ser público, não estático e ter o mesmo nome e associação que o membro da interface.Propriedades e índices em uma classe pode definir accessos extras para uma propriedade ou índice definidos na interface.Por exemplo, uma interface pode declarar uma propriedade com um obter acessador, mas a classe de implementação da interface possa declarar a mesma propriedade com um get e conjunto acessador.No entanto, se a propriedade ou indexador usa implementação explícita, os acessadores devem corresponder ao.
Interfaces e membros de interface são abstratos, interfaces não fornecem uma implementação padrão.Para obter mais informações, consulte Membros de classe e classes abstratas e seladas.
The IEquatable<T> interface apresenta ao usuário do objeto que o objeto pode determinar se ela é igual a outros objetos do mesmo tipo e o usuário da interface não tem saber como isso é implementado.
Interfaces podem herdar de outras interfaces.É possível que uma classe herdar várias vezes, uma interface por meio de classes base ou interfaces herda.Nesse caso, a classe pode apenas implementar a interface uma vez, se ela é declarada sistema autônomo parte da nova classe.Se a interface herdada não foi declarada sistema autônomo parte da nova classe, sua implementação é fornecida pela classe base que declarado-lo.É possível que uma classe base implementar membros de interface usando membros virtual; nesse caso, a classe que herda a interface pode alterar o comportamento da interface, substituindo membros virtual.Para obter mais informações sobre membros virtual, consulte Polimorfismo.
Visão geral de interfaces
Uma interface tem as seguintes propriedades:
Uma interface é como uma classe base abstrata: qualquer tipo não-abstrata herdar a interface deve implementar todos os seus membros.
Uma interface não pode ser instanciada diretamente.
Interfaces podem conter eventos, indexadores, métodos e propriedades.
Interfaces não contêm nenhuma implementação dos métodos.
Classes e estruturas podem herdar de mais de uma interface.
Se uma interface pode herdar de várias interfaces.
Nesta seção
implementação explícita da interface (guia de programação translation from VPE for Csharp)
Explica como criar um membro da classe específica de uma interface.Como: Membros de interface de implementar explicitamente (guia de programação translation from VPE for Csharp)
Fornece um exemplo de como implementar explicitamente membros de interfaces.Como: Implementar interface explicitamente os membros com herança (guia de programação translation from VPE for Csharp)
Fornece um exemplo de como implementar explicitamente membros de interfaces com herança.
Seções relacionadas
Propriedades (guia de programação translation from VPE for Csharp) da interface
Explica como declarar propriedades em uma interface.Indexadores em interfaces (guia de programação translation from VPE for Csharp)
Explica como declarar indexadores em uma interface.Como: Implementar interface de eventos (guia de programação translation from VPE for Csharp)
Ilustra como uma interface possa declarar um evento.Classes e estruturas (guia de programação translation from VPE for Csharp)
Descreve como translation from VPE for Csharp usa objetos, classes e estruturas.Herança (Guia de programação C#)
Explica como translation from VPE for Csharp implementa a herança.Métodos (Guia de programação do C#)
Explica os conceitos de métodos nomeados no translation from VPE for Csharp modelo de programação.Polymorphism (guia de programação C#)
Descreve sistema autônomo classes podem ser usados sistema autônomo mais de um tipo de translation from VPE for Csharp.Abstrato e Sealed classes e membros de classe (guia de programação C#)
Descreve como a abstract e sealed palavras-chave afetam a herança.Propriedades (Guia de programação do C#)
Explica o conceito de propriedades em translation from VPE for Csharp.Eventos (Guia de programação do C#)
Explica o conceito de eventos no translation from VPE for Csharp.Indexadores (guia de programação C#)
Explica o conceito de indexadores em translation from VPE for Csharp.