Revisão de Conceitos de Herança e Classes em POO

Classificado em Educação Artística

Escrito em em português com um tamanho de 3,18 KB

Análise do Conceito de Herança em POO

Um programador escreveu um conjunto de três classes utilizando o conceito de Herança:

  • Uma Classe Objeto (SuperClasse) com os atributos cor e ano.
  • Uma Classe Carro (SubClasse) com os atributos fabricante e placa.
  • Uma Classe Animal (SubClasse) com os atributos nome e raça.

O programador explorou de maneira correta o conceito de Herança em POO? Explique.

O programador não explorou de maneira correta o conceito de herança em POO, porque a SuperClasse não está relacionada logicamente com suas subclasses. A herança deve modelar uma relação 'é um tipo de' (e.g., um Carro é um Veículo). As classes Animal e Carro são entidades distintas e não compartilham uma superclasse comum lógica como Objeto neste contexto específico, embora ambas possam herdar de uma classe base genérica em linguagens como Java (Object). Classes Carro e Animal não são subtipos uma da outra.

Implementação da Classe Carro com Getters e Setters

Construa uma Classe do tipo Carro com os atributos fabricante, cor e ano, e com seus respectivos métodos "get" e "set".

public class Carro {
    public String fabricante;
    public String cor;
    public int ano;

    public String getFabricante() {
        return fabricante;
    }

    public void setFabricante(String fabricante) {
        this.fabricante = fabricante;
    }

    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    public int getAno() {
        return ano;
    }

    public void setAno(int ano) {
        this.ano = ano;
    }
}

Classe QuaseInteiro com Construtor Padrão

Construa uma Classe do tipo QuaseInteiro com um atributo valor, e que tenha um método construtor sem parâmetro que inicialize o atributo valor com 0 (zero).

Nota: Em Java, um método com o mesmo nome da classe sem retorno é um construtor. No entanto, a herança de tipos primitivos wrappers como Integer não é recomendada.

class QuaseInteiro extends Integer {
    public int valor;

    // Construtor sem parâmetro
    public QuaseInteiro() {
        this.valor = 0;
    }
}

Sobrecarga de Construtores na Classe QuaseInteiro

Modifique a Classe QuaseInteiro sobrecarregando o método construtor criando dois construtores: um com parâmetro do tipo int e outro do tipo String. Estes parâmetros devem inicializar o atributo valor.

class QuaseInteiro extends Integer {
    public int valor;

    // Construtor com String
    public QuaseInteiro(String valorStr) {
        this.valor = Integer.parseInt(valorStr);
    }

    // Construtor com int
    public QuaseInteiro(int valorInt) {
        this.valor = valorInt;
    }
}

Entradas relacionadas: