Pular para o conteúdo principal

Classes Abstratas X Interfaces


Uma classe abstrata pode conter métodos completos ou incompletos. UmaInterface pode conter apenas a assinatura de um método,  mas nenhum corpo ou implementação.
Portanto, em uma classe abstrata, pode-se implementar  métodos, mas em umaInterface não.
Uma classe abstrata pode conter campos, construtores, ou destrutores e aplicar propriedades. Uma interface não pode conter campos, construtores, ou destrutores; pode possuir apenas a propriedade da assinatura, mas não a implementação.
Uma classe abstrata não suporta múltiplas heranças, mas uma interface pode suportar múltiplas heranças, assim uma classe pode herdar várias interfaces, mas apenas uma classe abstrata e uma classe que implementa uma interface tem de obrigatoriamente implementar todos os métodos da interface, mas o mesmo não é exigido no caso de uma classe abstrata, que são mais rápidas que as interfaces.
 Então, quando devo utilizar o quê?
Classes Abstratas podem adicionar mais funcionalidades sem destruir as funcionalidades das classes filhos que poderiam estar usando uma versão mais antiga. Classes abstratas fornecem uma maneira simples e fácil para versionarnossos componentes e através da atualização da classe base, todas as classes que herdam são atualizadas automaticamente com a mudança.
Em uma interface a criação de funções adicionais terá um efeito sobre suas classes filhos, devido à necessidade de implementação dos Métodos criados nainterface. Então, classes abstratas deveriam ser usadas principalmente para objetos que estão estritamente relacionados, enquanto o uso de interfaces é mais adequado para fornecer funcionalidade comum a classes independentes.
Digamos que existem duas classes, de pássaros e de aviões, e nas duas existam os métodos chamados voar(). Seria estranho para uma classe avião herdar a classe pássaro apenas porque necessita do método voar(). Em vez disso, o método voar() deve ser definido em uma interface e em ambas as classes pássaro e avião  devem implementar a interface. Se quisermos proporcionar uma funcionalidade em comum para os componentes, devemos utilizar uma classe abstrata.
Classes abstratas nos permitem implementar parcialmente uma classe, enquanto ainterface não contem a implementação de qualquer membro, por isso a seleção de interface ou classes abstratas depende das necessidades e design do nosso projeto.
Podemos fazer uma classe abstrata, interface, ou até uma  combinação de ambas, dependendo de nossas necessidades.
Conclusão
Devemos utilizar classes abstratas quando queremos compartilhar funcionalidades em comum entre classes e utilizar interfaces quando desejamos que uma classe possua as mesmas assinaturas porém a implementação de cada método não precisa ser a mesma.

Comentários

Postagens mais visitadas deste blog

Serial, Ativador do IDM - Internet Download Manager

Desconectado da internet, preencha seu nome, sobrenome e e-mail e cole um dos seriais a baixo. UT13R-7B61S-2RS4F-VW8HE M3EKY-43E5R-8F72Q-6YE5W Indicado: P7TUP-Q27PX-UWT7I-O6U8W Idicado: P7TUP-Q27PX-UWT7I-O6U8W Indicado: SV8SX-FAFRT-0HZGT-6UG7S VLHH3-DOT2L-GWSPV-8R51Y 2F16E-O72OO-FTKQZ-F7ANL 7XKBZ-G5IJL-J4YUG-TMDMD 71GYP-HD5L0-82FI3-CLM2V THVW6-EC16E-5LWIK-72MII LSA8Y-CJDSS-RVNUA-PX41R 1XQBI-1362I-SMN19-6UU4W 2181X-E34PF-5DCTY-8IJSU 8PFHC-XGH8R-HPRKI-OPQRX 8M74P-61O87-W41HY-GOCDB RNM8F-68WC9-NRYDI-X1YOY

Crianças fazendo sexo na internet?

Não estou motivando, e sim repreendendo.

Número da ANATEL, Telefone da ANATEL (0800) - Entre em contato com a ANATEL

Você que está cansado de está nas mãos dessas operadoras irresponsáveis, que não te dão os atendimentos devidos... aqui está o número da ANATEL ligue e faça eles te ligarem horas depois e te darem todo o atendimento necessário; Os novos números de contato da ANATEL são: Atedimento normal: 1331 Pessoas com deficiência auditiva,  1332,  De segunda a sexta-feira, nos dias úteis, das 8h às  Contato pelo formulário online, clique no link abaixo: Atendimento On-line NOTÍCIAS SOBRE ANATEL: ---------------------------------------------------------- TCU vai auditar operadoras de celular e Anatel Por que a Banda Larga (ainda) não é de todos Novo Regulamento da Anatel vem defender os direitos do consumidor de telecom Consumidores avaliam qualidade dos serviços de telecomunicação Saiba o que perguntar antes de contratar serviços de telecomunicações Comente via Facebook: