a explicação mais fácil de classe abstrata e Interface

esta é talvez a pergunta mais colocada em qualquer entrevista relacionada com o desenvolvimento de Software ou garantia de qualidade do software. Tenho visto pela minha experiência que muitas vezes muitos de nós ficam confusos ou esquecem a definição e o uso de classes abstratas e interfaces. Por isso, quero torná-lo mais fácil para que ninguém volte a ter problemas com ele.

Abstract class and interfaces are two very vital pivots in the Object Oriented Programming concept.,

no início, eu vou explicar a classe abstrata e é o uso, e mais tarde vamos nos mover para Interfaces.

Abstract class is nothing special to look at when you want to diferenciate with a regular class. Mas tem alguns métodos que não são implementados, ou apenas declarados, não definidos. Nesse caso, todos esses métodos e a própria classe são renomeados com a palavra-chave” abstrata”.

uma classe abstrata pode ter um ou vários métodos não implementados.,

Como uma classe abstrata não é adequada, ou não tem métodos idealmente definidos em comparação com uma classe regular, então classes abstratas não podem ser instanciadas, o que significa que não podemos criar quaisquer objetos diretos de classes abstratas.

As classes que herdam / estendem esta classe abstracta, têm de implementar/definir todos os métodos abstractos da classe abstracta pai.

Se qualquer classe não consegue definir qualquer um dos métodos abstratos, essa classe também se torna uma classe abstrata.,

Usage (An imaginary case study):

vamos supor que, em 1995, você desenhou uma classe de carros que tinha uma característica adicional-que poderia voar. Você projetou a classe de carro muito bem, todos os seus métodos eram muito padrão e eficiente, mas naquela época, você sabia que era completamente impossível implementar o método de criação de carros (). Então, você apenas manteve o método de criação de carFlying() em branco, ou Não implementado (Agora você sabe que é um método abstrato, bem como Classe!).,

Hoje, eu quero implementar aquele carro voador que você já projetou e a tecnologia não é mais impossível. O carro que vou construir tem todas as características semelhantes ao seu carro, e além disso ele pode voar. Então, o que eu posso fazer é simplesmente herdar (“extends”-para Java) sua classe abstrata e deve definir/implementar esse método abstrato de carFlying (). aqui está! o nosso carro voador está pronto para rolar.

assim, sempre que temos algumas características comuns ou comportamento entre vários objetos, podemos fazer uma classe abstrata geral com essa característica como um método implementado., Mas esses objetos podem ter comportamentos distintos, nesse caso, vamos declarar um método abstrato e vamos implementar esses métodos abstratos de forma diferente de acordo com a necessidade do objeto.

Exemplo de Classe Abstrata:

mais uma Vez, vamos considerar um exemplo, um grupo de lutadores de obter a mesma quantidade de dinheiro por hora para jogar. mas eles têm música tema diferente e terminar a estratégia de luta. Então, podemos manter o método de pagamento igual para todos e tê-lo implementado em uma classe chamada Wrestler., vamos declarar os métodos themusic() e finisher() como abstratos porque estes dois têm que ser implementados de forma diferente para objetos diferentes em algumas outras classes que herdam a nossa classe de wrestler Abstrato.

E o principal.java:

Interface:

Se você passou pela parte superior deste tutorial corretamente, a interface de compreensão será muito mais fácil para você.

Interface não é uma classe, sua interface justa. Ele tem alguns métodos sem corpo dentro dele, apenas a assinatura do método (eles são basicamente métodos abstratos!,), e pode ter algumas variáveis finais e estáticas. E, uma classe típica “implementa” interfaces, não “estende”.

várias interfaces podem ser implementadas (geralmente, herdadas) de uma só vez.

As classes que herdam / implementam as interfaces, devem definir todos os métodos abstratos da interface.

Os Métodos dentro das interfaces são por padrão públicos, vazios e abstratos.

interface é um tipo de herança múltipla na Linguagem de programação Java.

não podemos instanciar interfaces também como classes abstratas., Porque eles são entidade incompleta, e não deve ser permitido ser realizado. Mas, às vezes, uma atividade como a instanciação pode ser aplicável a ela com a ajuda da classe interna anônima. Não é essa a nossa agenda de hoje.

Utilização da Interface:

Interfaces poupam tempo de codificação. Ele pode conter algumas variáveis estáticas e finais que podem ser acessadas globalmente. e alguns métodos que são abstratos e prontamente disponíveis para uso posterior a qualquer momento para quem implementa a interface.,

exemplo de Interface:

no exemplo acima de classe abstrata, vimos que um método era o mesmo para todos os que tinham um corpo dentro da classe abstrata e outros métodos eram abstratos. mas para Interfaces, todos os métodos são agora apenas assinatura. A classe StoneCold implementa a interface do lutador e define todos os três métodos abstratos de acordo com sua necessidade.desta vez, diferentes lutadores recebem uma quantia diferente de dinheiro por hora. Assim, é o mais conveniente colocar o mesmo método que abstrato e defini-lo em outro lugar de acordo com a necessidade do objeto.,

public interface Wrestler {
public abstract void paymentForWork (int hours);
public abstract void themeMusic();
public abstract void finisher();
}

e a classe seguinte implementa a interface do lutador.

para a principal.java:

para iniciar um objeto em caso de classe ou interface abstrata, você pode manter o seguinte em mente,

A obj= new B();
//where A is an interface/abstract class. B is the concrete(implements/extends "A”)class which gives it’s memory to A’s obj to have access into B class and utilize its defined methods.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *