13.13 Herança e Polimorfismo em Java: Classes Internas e Herança

13.13 Herança e Polimorfismo em Java: Classes Internas e Herança

A programação orientada a objetos (POO) é um paradigma de desenvolvimento que permite aos programadores criar programas baseados no conceito de "objetos", que podem conter dados e métodos para manipular esses dados. Java, sendo uma linguagem orientada a objetos, oferece mecanismos robustos para implementar herança e polimorfismo, incluindo o uso de classes internas. Neste capítulo, exploraremos como a herança e o polimorfismo se manifestam no contexto das classes internas em Java.

Herança em Java

Herança é um princípio fundamental da POO que permite criar uma nova classe baseada em uma classe existente. A nova classe, chamada de classe derivada ou subclasse, herda atributos e métodos da classe base, também conhecida como superclasse. Em Java, a herança é realizada com a palavra-chave extends.

Classes Internas

Em Java, é possível definir uma classe dentro de outra classe. Essas são chamadas de classes internas e podem ser categorizadas em quatro tipos:

  • Classe interna regular: Uma classe definida dentro do escopo de outra classe.
  • Classe interna estática: Uma classe interna que é declarada como estática. Ela pode ser acessada sem a necessidade de uma instância da classe externa.
  • Classe interna local: Uma classe definida dentro de um bloco de código, como um método.
  • Classe anônima: Uma classe sem nome definida e instanciada em uma única expressão.

Herança com Classes Internas

Quando uma classe interna estende outra classe, ela herda seus atributos e métodos. Isso permite a reutilização de código e a criação de hierarquias de classes mais complexas. Além disso, uma classe interna pode acessar membros da sua classe externa, mesmo que sejam privados.

Considere o seguinte exemplo:

        
public class Externa {
    private String mensagem = "Olá, Mundo!";
    
    class Interna extends OutraClasse {
        void exibirMensagem() {
            System.out.println(mensagem); // Acesso ao membro privado da classe externa
        }
    }
}

class OutraClasse {
    public void algumMetodo() {
        // Implementação
    }
}
        
    

A classe Interna é uma classe interna da classe Externa e estende OutraClasse. Ela pode acessar o membro privado mensagem da classe Externa sem problemas.

Polimorfismo

O polimorfismo é outro conceito chave da POO que permite que um objeto seja tratado como uma instância de sua própria classe ou de qualquer classe da qual ele herda. Em Java, o polimorfismo é geralmente implementado através de métodos sobrescritos (override) e interfaces.

Quando uma classe interna sobrescreve um método de sua superclasse, ela está usando polimorfismo para fornecer uma implementação específica desse método. Isso é especialmente útil quando queremos modificar o comportamento de métodos herdados em contextos específicos da classe externa.

Veja o exemplo a seguir:

        
public class Externa {
    // ... outros membros da classe Externa ...
    
    class Interna extends OutraClasse {
        @Override
        public void algumMetodo() {
            System.out.println("Método sobrescrito na classe interna.");
        }
    }
}
        
    

No exemplo acima, a classe Interna sobrescreve o método algumMetodo da classe OutraClasse. Quando um objeto da classe Interna chama algumMetodo, a versão sobrescrita é executada.

Considerações Finais

Herança e polimorfismo são conceitos poderosos que permitem a criação de código reutilizável e extensível. As classes internas em Java proporcionam uma maneira de organizar o código de maneira mais próxima e integrada com a classe externa, mantendo a capacidade de herdar de outras classes e implementar polimorfismo.

É importante notar que, embora as classes internas possam acessar todos os membros (incluindo privados) da classe externa, a classe externa não tem acesso direto aos membros da classe interna. Além disso, o uso de classes internas deve ser bem pensado, pois elas podem complicar o design do seu programa se usadas sem critério.

Compreender como herança e polimorfismo funcionam em conjunto com as classes internas é essencial para qualquer desenvolvedor Java que deseja dominar a linguagem e escrever códigos eficientes e organizados.

Agora responda o exercício sobre o conteúdo:

Qual das seguintes afirmações sobre classes internas em Java é correta de acordo com o texto fornecido?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Herança e Polimorfismo em Java: Princípio de substituição de Liskov

Próxima página do Ebook Gratuito:

98Herança e Polimorfismo em Java: Princípio de substituição de Liskov

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto