"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Classes abstratas em Java – detalhando

Classes abstratas em Java – detalhando

Publicado em 2024-11-08
Navegar:636

Abstract Classes in Java – Breaking It Down

O que é uma classe abstrata?

Uma classe abstrata é como um modelo para outras classes. Você não pode criar um objeto diretamente de uma classe abstrata. Em vez disso, você o usa como base para outras classes que podem construir sobre ele e preencher os detalhes.

Por que usar classes abstratas?

As classes abstratas são úteis quando você deseja definir um conceito geral que tenha alguns recursos compartilhados, mas também deseja deixar espaço para detalhes específicos que podem variar em diferentes situações. Por exemplo, você pode ter um conceito geral de "Animal" que inclui características comuns como comer ou dormir, mas animais diferentes podem comer ou dormir de maneiras diferentes.

Criando uma classe abstrata

Veja como você pode criar uma classe abstrata chamada Animal:

public abstract class Animal {
    abstract void makeSound();  // Abstract method, no body

    void sleep() {
        System.out.println("This animal sleeps.");
    }
}

Neste exemplo, makeSound() é um método abstrato, o que significa que ainda não possui corpo. O método sleep(), entretanto, está totalmente implementado.

Estendendo uma aula abstrata

Agora, vamos criar algumas classes que estendem a classe Animal:

public class Dog extends Animal {
    void makeSound() {
        System.out.println("The dog barks.");
    }
}

public class Cat extends Animal {
    void makeSound() {
        System.out.println("The cat meows.");
    }
}

As classes Dog e Cat devem fornecer sua própria versão do método makeSound(), mas herdam o método sleep() como está.

Classe abstrata vs. interface

  • Herança: Uma classe pode estender apenas uma classe abstrata, mas pode implementar múltiplas interfaces.
  • Implementação de método: Uma classe abstrata pode ter métodos abstratos (sem corpo) e métodos totalmente implementados. Uma interface (antes do Java 8) só pode ter métodos abstratos.
  • Construtor: Classes abstratas podem ter construtores, enquanto interfaces não.

Implementação Parcial

Uma classe abstrata é ótima quando você tem alguns métodos que devem ser compartilhados entre todas as classes filhas, mas também deseja forçar a definição de alguns métodos por essas classes filhas.

public abstract class Bird extends Animal {
    void move() {
        System.out.println("The bird flies.");
    }
}

Agora, qualquer classe que estenda Bird herdará o método move() e o método sleep() de Animal, mas ainda precisará implementar makeSound().

Desafio: Experimente você mesmo!

  1. Crie uma classe abstrata chamada Vehicle com um método abstrato startEngine().
  2. Faça duas classes, Car e Motorcycle, que estendam Vehicle e implementem o método startEngine().
  3. Adicione um método comum a Vehicle, como stopEngine(), e veja como ele funciona nas classes filhas.

Conclusão

As classes abstratas em Java fornecem uma maneira de criar uma base compartilhada para classes relacionadas, deixando espaço para essas classes definirem detalhes específicos. Eles alcançam um equilíbrio entre funcionalidade compartilhada e flexibilidade, tornando seu código poderoso e reutilizável.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/be11amer/abstract-classes-in-java-breaking-it-down-1k79?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3