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

Página 97

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

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

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text