Conceito de interface e herança múltipla em Java. Implementos Exemplos e diagramas de classes. (CU00696B)

Escrito por Alex Rodríguez

Resumen: Entrega nº96 del curso “Aprender programación Java Desde cedo”.
coding learnrapragramar.com: CU00696B

conceito de múltipla interface e herança em Java. Implementos.

Em seções anteriores do tutorial estudamos os conceitos de herança e polimorfismo. Até agora, consideramos cenários nos quais uma aula herda apenas de outra classe. Seria possível levantar um cenário onde uma aula herda de mais de uma classe (herança múltipla)?

java múltipla património

O esboço da figura anterior representaria que haveria aulas como professorerito que herdaria duas classes: professora e palestrante. Este seria um caso de herança múltipla e representaria que a subclasse compartilha as características das duas superclasses, e também tem suas características específicas. A herança múltipla, para a consistência de programas e idiomas tem uma complexidade relativamente alta. Portanto, algumas línguas orientadas a objetos permitem e outras não. Java não permite a herança múltipla, mas em troca tem a construção chamada “interface” que permite uma forma de simulação limitada ou implementação de herança múltipla.

Nós já temos Foi discutido o conceito de interface em alusão à assinatura de métodos ou informações públicas das classes. Também fizemos uma primeira aproximação na interface do termo em Java, e como símile, dissemos que poderia ser considerado como uma regra de urbanismo Em uma cidade. Vamos aprofundar o conceito de interface dentro de Java. Uma interface é uma construção semelhante a uma classe abstrata em Java, mas com as seguintes diferenças:

a) No cabeçalho a interface da palavra-chave é usada em vez de classe ou classe abstrata. Por exemplo, interface pública nameninterface {…}

b) cada método é abstrato e público sem precisar declará-lo, isto é, você não precisa colocar público abstrato Que, por padrão, todos os métodos são públicos abstratos. Portanto, uma interface no Java não implementa nenhum dos métodos que declara: Nenhum de seus métodos tem um corpo.

c) As interfaces não têm nenhum construtor. / p>

d) Uma interface suporta apenas “campos do tipo” Público estático “final”, isto é, campos de classe, público e constante. Não há necessidade de incluir as palavras finais estáticas públicas porque todos Os campos serão tratados como se fossem assumir essas palavras. Lembre-se de que a estática era equivalente a “classe” e final para “constante”. As interfaces podem ser um lugar interessante para declarar constantes que serão usados por diferentes classes em nossos programas.

e) Uma classe pode derivar de uma interface da mesma forma que pode derivar de outra classe. No entanto, é dito que a interface é implementada (implementos), Não se estende (estenda) para suas subclasses. Portanto, para declarar a herança de uma interface, a implementação da palavra-chave é usada Ents em vez de estender.

Uma classe pode ser implementada uma ou mais interfaces em Java (é indicado com implementosinterface1, nomeinface2, … etc.), mas só pode estender uma classe. Implementar várias interfaces em uma única classe é a coisa mais próxima que o Java tem para herança múltipla.

Podemos declarar variáveis do tipo de interface, mas para inicializá-los, usaremos uma classe específica que o implementou Por exemplo, lista < string > milista; Declara uma variável com o tipo da interface de lista. Millist de inicialização = nova lista < string > (); Não é possível porque você não pode criar um objeto do tipo definido por uma interface. Em alterar Milista = novo LinkedList < string > (); Sim É válido.

Dizeríamos que uma interface em Java define um tipo cujos métodos sejam todos sem implementação e isso é equivalente a uma herança múltipla (aulas abstratas) em uma aula.Se uma classe implementa uma interface, ela pode acontecer:

a) que implementou os métodos da interface, sobrescrevê-los (pode ser uma classe específica).

b) que não implementando os métodos da interface: Será uma classe abstrata e deve ser realizada pelo resumo da palavra-chave em seu cabeçalho para indicar.

Considere um diagrama de classes como este , que poderia usar para um programa de gerenciamento em um centro educacional:

Vemos que as interfaces são identificadas por BlueJ com < < interface > > na parte superior do seu ícone. Dentro dessas aulas, as relações são determinadas por este código:

ator de interface pública {…}: define o ator ator AprononapragraGar.com Interface.

Pessoa de classe abstrata pública Implementa o ator {…}: Define a classe abstrata como uma implementação da interface do ator.

Professor de classe pública estende a pessoa {…} : Define a classe do professor como extensão da pessoa da classe.

Estudante de classe pública estende a pessoa {…}: Define a classe de estudante como uma extensão da classe da pessoa.

público interface obsointee {…}: Define o objeto de interface.

Veículo de classe pública Implementa o ator, ObjectInerte {…}: Define que a classe do veículo implementa duas interfaces, a interface do ator e a interface do objeto, isto é, que um veículo é ao mesmo tempo ator e objovo.

carro de classe pública estende o veículo {…}: Define a classe de carro como uma extensão da classe do veículo.

Bicicleta de classe pública fugir Ds veículo {…}: Define a classe de bicicleta como uma extensão da classe do veículo.

Uma classe pode herdar de outro e implementar uma ou mais interfaces. Neste caso, em primeiro lugar, a relação de herança é colocada na superclasse e depois as interfaces que implementa. Por exemplo, neste esquema:

interface java

A definição da classe da árvore seria assim: a árvore de classe pública estende o ator de vegetais {…}. A classe herda do ator de vegetais e implementos.

Como saber se uma classe é um candidato a ser definido como uma interface?

A) Se precisarmos de algum método com o corpo, já sabemos que não será uma interface porque todos os métodos de uma interface têm que ser abstrato.

b) Se precisarmos de uma classe” herdada “de mais de uma superclasse, essas superclasses são candidatos a serem interfaces.

c) em alguns casos é tão viável definindo uma classe como uma interface que como uma classe abstrata, mas colocada nessa situação preferirá optar por uma interface porque é mais flexível e extensível: ele nos permitirá implementar várias interfaces (nós aproveitamos da herança múltipla das interfaces). Em vez disso, uma classe não pode herdar várias classes.

Lembre-se que o campo S declarados são os campos estáticos, mesmo que não seja especificamente indicado:

ator de interface pública {

int ativo = 1; int inativo = 0; // … Resto do exemplo de código de interface LEARDRAPRAGRAMAR.com }

Neste caso ativo e inativo se comportam como final estático público (constante) para todas as classes que implementam essa interface.

Qual é um dos principais interesses de usar interfaces? Ser capaz de usar o polimorfismo: por exemplo, ser capaz de reunir em objetos de coleção do tipo de interface, mas que são implementados em diferentes tipos. Ou para ser capaz de tratar objetos de diferentes tipos, mas pertencer ao mesmo supertipo de supertipo porque eles implementam uma interface.

responde às seguintes perguntas:

A ) É uma aula herdando duas classes em java?

b) Uma interface Java pode ter métodos que incluem uma instrução While?Uma interface Java tem métodos que incluam uma instrução System.out.println?

c) é um objeto Java do tipo definido por uma interface? Um objeto Java pode ser ao mesmo tempo definido por uma interface e tipo definido por uma classe que não implementa a interface? Um objeto Java pode ser ao mesmo tempo definido por uma interface e o tipo definido por uma classe que implementa a interface?

Para verificar se suas respostas são Correto Você pode consultar nos fóruns learnrapragramar.com.

Para acessar as informações gerais sobre este curso e a lista completa de entregas clique em Neste link: Veja o curso completo.

Deixe uma resposta

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