O que é uma interface de classe?
-
06-07-2019 - |
Pergunta
Atualmente estou trabalhando meu caminho através de código completo e o "interface" palavra continua aparecendo! Eu estou tentando obter minha cabeça redonda que uma interface é. você pode definir o termo? Também o que realmente torna-se uma "interface de classe"?
Solução
Eu acho que uma boa maneira de definir uma interface é a seguinte
Uma interface é um contrato que especifica um conjunto de métodos, campos e propriedades que estará disponível em qualquer objeto implementação
A implementação real de língua para língua pode ter engraçado pequenas diferenças, mas o princípio é válido.
I considerado adicionando interfaces implementadas para a lista acima, mas deixou-o fora porque parecia ser um pouco demasiado específica da linguagem. Eu acho que é OK, porque embora o efeito final é quase o mesmo. Aderência em mais interfaces é apenas adicionando mais métodos, campos e propriedades do contrato.
Outras dicas
Em geral, uma interface é simplesmente "o que os olhares classe como para o resto do mundo".
Por exemplo, esta classe em Java:
class MyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
poderia ser dito para ter apenas a função Bar em sua interface. Internamente ela tem alguns outros membros, mas eles são privados, para que eles não são visíveis para o mundo exterior.
Mais comumente, as interfaces são também tipos específicos na língua, por exemplo, no seguinte, implementos MyClass os IMyClass interface:
interface IMyClass {
public void Bar(string s);
}
class MyClass implements IMyClass {
private string data;
private string Foo() {...}
public void Bar(string s){...}
}
A interface é agora expressa em código, de modo que a qualquer momento é esperada uma variável do tipo IMyClass, um objecto de MyClass tipo pode ser utilizada, porque ela implementa a interface correcta.
É face externa para o mundo. Normalmente, o conjunto de métodos públicos (membros) expõe.
Tecnicamente porém eles seria 2 coisas diferentes
Uma interface seria um contrato público. por exemplo.
interface ILogger
{
void Log(String str);
}
A classe seria então 'implementar' essa interface - de uma forma dizendo que ele fornece essa funcionalidade
class ConsoleLogger : ILogger
{
public ConsoleLogger() { ... }
public void Log(String str)
{
Console.WriteLine("Console Logger " + str);
}
// private stuff
}
Os usuários deste serviço / Interface não têm de se preocupar com a forma como ele é implementado ou que está a implementar isso? Por dependendo de uma interface, a implementação real pode ser ligado à vontade.
A interface para uma classe é a sua "face pública" que outras classes podem ver. Ele separa a implementação da classe da forma como ele interage com outras classes. Dessa forma, diferentes implementações podem ser trocados e outras classes não precisa saber nada sobre o que está por trás da interface.
Uma interface pode incluir ambos os membros de dados e funções.
Interface é a definição de um conjunto de métodos que a classe pode implementar. Seu usado principalmente para o polimorfismo interface.
Uma interface é como uma classe, mas não completamente. Ele tem características semelhantes, como uma classe, mas não é uma interface. Uma interface tem variáveis ??e métodos "assim como a classe, mas os métodos declarados na interface do são por padrão abstrato (somente assinatura do método, nenhum corpo)".
Interfaces tem duas definições. Depende em que contexto o termo interface é usado.
- Classes uma interface refere-se a todos os métodos públicas implementadas de uma classe.
-
Uma interface como um Tipo. ou seja usando a interface palavra-chave para declarar uma interface.
interface Movable{ moveStraight(); moveLeft(); moveRight(); stop(); }
Então, agora uma classe, digamos, um carro pode implementar a interface móvel. Isto é o que é conhecido como o contrato. Se implementos classe de carro de interface móvel, Carro garante para fornecer implementações para todos os métodos declarados em bens móveis declaração.
Para concluir, geralmente uma interface é tratada como um tipo (definição 2) em um contexto de linguagem de programação específica. Você vai encontrar a primeira definição em menos ocasiões geralmente em um contexto teórico ou design.
O exemplo da vida real clássico de uma interface é o controle de um carro.
A ruptura, gás e roda seria a interface. O motor e outros aspectos mechenical seria a implementação. Estes aspectos mecânicos podem mudar, nós não saberíamos porque nossa interface continua a mesma.
Este é o poder de uma interface, ele oculta detalhes de implementação para que possamos trabalhar em um nível mais alto de abstração. Nós podemos usar diretamente a funcionalidade da interface geralmente sem se preocupar como o código abaixo é aplicada.