13.5. Herança e Polimorfismo em Java: Hierarquia de Classes

Página 89

13.5 Herança e Polimorfismo em Java: Hierarquia de Classes

A programação orientada a objetos (POO) é um paradigma de desenvolvimento de software que se baseia no conceito de "objetos", que podem conter dados na forma de campos, frequentemente conhecidos como atributos, e código, na forma de procedimentos, frequentemente conhecidos como métodos. Dois dos pilares fundamentais da POO são a herança e o polimorfismo, que permitem a criação de um código mais reutilizável e flexível.

Herança em Java

A herança é um mecanismo que permite que uma nova classe seja criada com base em uma classe existente. A nova classe, conhecida como subclasse ou classe derivada, herda campos e métodos da classe existente, que é chamada de superclasse ou classe base. A herança é uma forma de reutilizar código e estabelecer uma relação de tipo entre classes, criando uma hierarquia.

Em Java, a herança é realizada com a palavra-chave extends. Por exemplo:

class Animal {
    void comer() {
        System.out.println("Este animal come");
    }
}

class Cachorro extends Animal {
    void latir() {
        System.out.println("O cachorro late");
    }
}

Aqui, a classe Cachorro estende a classe Animal, o que significa que Cachorro herda o método comer() de Animal. Isso significa que um objeto de Cachorro pode chamar o método comer(), mesmo que não tenha sido explicitamente definido na classe Cachorro.

Java suporta apenas herança simples, o que significa que uma classe só pode estender uma única classe. No entanto, uma classe pode implementar várias interfaces, que é um tópico diferente e também uma forma de alcançar a polimorfia.

Polimorfismo em Java

Polimorfismo é a capacidade de um método de ter várias formas. Em Java, isso é conseguido principalmente de duas maneiras: polimorfismo de sobrecarga (overloading) e polimorfismo de sobrescrita (overriding).

Polimorfismo de sobrecarga acontece quando dois ou mais métodos na mesma classe têm o mesmo nome, mas parâmetros diferentes. Por exemplo:

class Exemplo {
    void demo(int a) {
        System.out.println("a: " + a);
    }

    void demo(int a, int b) {
        System.out.println("a e b: " + a + "," + b);
    }

    double demo(double a) {
        System.out.println("double a: " + a);
        return a*a;
    }
}

Polimorfismo de sobrescrita, por outro lado, é quando uma subclasse tem um método com a mesma assinatura (nome e parâmetros) que um método na superclasse. Ao sobrescrever um método, a subclasse fornece sua própria implementação. Um exemplo disso seria:

class Animal {
    void som() {
        System.out.println("O animal faz um som");
    }
}

class Cachorro extends Animal {
    @Override
    void som() {
        System.out.println("O cachorro late");
    }
}

Com o polimorfismo de sobrescrita, quando um método é invocado, o método da subclasse é chamado, não o da superclasse. O uso da anotação @Override é opcional, mas é uma boa prática de programação, pois ajuda a evitar erros e deixa o código mais legível.

Hierarquia de Classes

A hierarquia de classes é a organização de classes em uma estrutura de árvore onde a classe base é o nó raiz e as subclasses são os nós filhos. Essa estrutura permite a reutilização de código e a gestão da complexidade em sistemas grandes. Em uma hierarquia de classes, uma subclasse herda o estado e o comportamento da superclasse, podendo adicionar novos campos e métodos ou sobrescrever os existentes.

Um exemplo clássico de hierarquia de classes é a classificação biológica. Por exemplo, a classe Mamifero pode estender a classe Animal, e a classe Cachorro pode estender a classe Mamifero. Cada nível da hierarquia agrega características específicas que são herdadas pelos níveis abaixo.

Considerações Finais

A herança e o polimorfismo são conceitos essenciais no desenvolvimento orientado a objetos. Eles permitem a criação de uma estrutura de código que é ao mesmo tempo flexível e fácil de manter. A herança permite estabelecer uma relação "é-um" entre classes, enquanto o polimorfismo permite que objetos de diferentes classes sejam tratados de maneira uniforme. Juntos, eles proporcionam poderosas ferramentas para o desenvolvimento de software em Java e muitas outras linguagens de programação orientadas a objetos.

Entender e aplicar corretamente a herança e o polimorfismo pode ser desafiador para programadores iniciantes, mas é fundamental para a criação de sistemas robustos e escaláveis. Com a prática e o estudo desses conceitos, desenvolvedores podem dominar a arte da programação orientada a objetos e criar aplicações eficientes e de alta qualidade em Java.

Répondez maintenant à l’exercice sur le contenu :

Qual das seguintes afirmações sobre herança e polimorfismo em Java está correta?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

9013.6. Herança e Polimorfismo em Java: Construtores e Herança

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte