Diferença entre classe abstrata e herança

Índice:

Diferença entre classe abstrata e herança
Diferença entre classe abstrata e herança

Vídeo: Diferença entre classe abstrata e herança

Vídeo: Diferença entre classe abstrata e herança
Vídeo: Faculdade de Análise e desenvolvimento de sistemas ou Engenharia de software? - #51 2024, Julho
Anonim

Classe Abstrata vs Herança

Classe abstrata e Herança são dois importantes conceitos orientados a objetos encontrados em muitas linguagens de programação orientadas a objetos como Java. A classe abstrata pode ser considerada como uma versão abstrata de uma classe regular (concreta), enquanto a herança permite que novas classes estendam outras classes. Classe abstrata é uma classe que não pode ser inicializada, mas pode ser estendida. Portanto, classes abstratas só são significativas se a linguagem de programação suportar herança. Em Java, as classes abstratas são declaradas usando a palavra-chave Abstract, enquanto a palavra-chave Extends é usada para herdar de uma (super) classe.

O que é classe abstrata?

Normalmente, classes abstratas, também conhecidas como classes básicas abstratas (ABC), não podem ser instanciadas (uma instância dessa classe não pode ser criada). Portanto, classes abstratas só são significativas se a linguagem de programação suportar herança (capacidade de criar subclasses a partir da extensão de uma classe). Classes abstratas geralmente representam um conceito abstrato ou entidade com implementação parcial ou nenhuma. Portanto, as classes abstratas agem como classes pai das quais as classes filhas são derivadas para que a classe filha compartilhe os recursos incompletos da classe pai e a funcionalidade pode ser adicionada para completá-los.

Classes abstratas podem conter métodos abstratos. As subclasses que estendem uma classe abstrata podem implementar esses métodos abstratos (herdados). Se a classe filha implementa todos esses métodos abstratos, ela é uma classe concreta. Mas se isso não acontecer, a classe filha também se torna uma classe abstrata. O que tudo isso significa é que, quando o programador nomeia uma classe como Abstract, ela está dizendo que a classe estará incompleta e terá elementos que precisam ser completados pelas subclasses herdadas. Esta é uma boa maneira de criar um contrato entre dois programadores, o que simplifica as tarefas no desenvolvimento de software. O programador, que escreve código para herdar, precisa seguir exatamente as definições do método (mas é claro que pode ter sua própria implementação).

O que é Herança?

Herança é um conceito orientado a objetos, que permite que novas classes estendam outras classes. A palavra-chave Extends é usada para implementar o conceito de herança na linguagem de programação Java. A herança essencialmente fornece a reutilização de código ao permitir a extensão de propriedades e comportamento de uma classe existente por uma classe recém-definida. Quando uma nova subclasse (ou classe derivada) estende uma superclasse (ou classe pai) essa subclasse herdará todos os atributos e métodos da superclasse. A subclasse pode opcionalmente substituir o comportamento (fornecer funcionalidade nova ou estendida aos métodos) herdada da classe pai. Normalmente, uma subclasse não pode estender várias superclasses (por exemplo, em Java). Portanto, você não pode usar extensões para herança múltipla. Para ter herança múltipla, você precisa usar interfaces.

Qual é a diferença entre Classe Abstrata e Herança?

Classes abstratas geralmente representam um conceito abstrato ou uma entidade com implementação parcial ou nenhuma. A herança permite que novas classes estendam outras classes. Como as classes abstratas não podem ser instanciadas, você precisa usar o conceito de herança para fazer uso das classes abstratas. Caso contrário, uma classe abstrata não tem utilidade. Classes abstratas podem conter métodos abstratos e quando a classe é estendida, todos os métodos (abstratos e concretos) são herdados. A classe herdada pode implementar qualquer um ou todos os métodos. Se todos os métodos abstratos não forem implementados, essa classe também se tornará uma classe abstrata. Uma classe não pode herdar de mais de uma classe abstrata (isso não é uma qualidade das classes abstratas em si, mas sim uma restrição de herança).

Postagens relacionadas:

Image
Image
Image
Image

Diferença entre classe abstrata e classe concreta

Image
Image
Image
Image

Diferença entre virtual e abstrato

Image
Image
Image
Image

Diferença entre classe abstrata e interface

Image
Image
Image
Image

Diferença entre implementos e extensões

Image
Image
Image
Image

Diferença entre Gráfico e Árvore

Arquivado em: Programação Tagged With: ABC, resumo, classes base abstratas, classe abstrata, classes abstratas, palavra-chave abstrata, métodos abstratos, classe concreta, palavra-chave Extends, herança, classe de herança, classe herdada, Java, herança múltipla, conceitos de orientação a objetos, classe regular, superclasse

Imagem
Imagem

Sobre o Autor: Indika

Indika, BSc. Eng, MSECE Engenharia de Computação, PhD. Ciência da Computação, é Professor Assistente e tem interesses de pesquisa nas áreas de Bioinformática, Biologia Computacional e Processamento Biomédico de Linguagem Natural.

Comentários

  1. Imagem
    Imagem

    Jason diz

    30 de agosto de 2017 às 13h25

    Obrigado por explicar a diferença. Todas as minhas perguntas foram resolvidas por isso.

    Responder

  2. Imagem
    Imagem

    Aus diz

    10 de maio de 2019 às 15h04

    melhor resposta da web, o professor não explica merda nenhuma e não faz sentido, tom mono mf. É assim que você explica os conceitos.

    Responder

Deixe uma resposta Cancelar resposta

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com

Comentário

Nome

E-mail

Site

Solicitar artigo
Solicitar artigo
Solicitar artigo
Solicitar artigo

Postagens em destaque

Diferença entre os sintomas do coronavírus e do resfriado
Diferença entre os sintomas do coronavírus e do resfriado

Diferença entre coronavírus e sintomas de resfriado

Diferença entre coronavírus e SARS
Diferença entre coronavírus e SARS

Diferença entre Coronavírus e SARS

Diferença entre coronavírus e gripe
Diferença entre coronavírus e gripe

Diferença entre Coronavírus e Influenza

Diferença entre Coronavírus e Covid 19
Diferença entre Coronavírus e Covid 19

Diferença entre Coronavírus e Covid 19

Você pode gostar

Diferença entre Husky Siberiano e Malamute

Diferença entre cálculo AB e BC

Recomendado: