Herança, Classes e Construtores em POO

Classificado em Educação Artística

Escrito em em português com um tamanho de 2,26 KB.

Herança em Classes de Objetos

Um programador escreveu três classes utilizando herança: uma classe Objeto (superclasse) com os atributos cor e ano, uma classe Carro (subclasse) com os atributos fabricante e placa, e uma classe Animal (subclasse) com os atributos nome e raça. O programador explorou corretamente o conceito de herança?

Resposta: Não. A superclasse Objeto não possui relação com as subclasses Carro e Animal. Embora Carro e Animal possam ter atributos em comum, não compartilham um tipo base lógico. A herança deve representar um relacionamento “é um tipo de”.

Classe Carro

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

class Carro {
    private String fabricante;
    private String cor;
    private 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 Inteiro (QuaseInteiro)

Construa uma classe Inteiro com o atributo valor e um construtor sem parâmetros que inicialize valor com 0.

class QuaseInteiro { // Não estende Integer. 'Integer' é imutável.
    public int valor;

    public QuaseInteiro() {
        this.valor = 0;
    }
}

Classe Inteiro com Construtores Sobrecarregados

Modifique a classe Inteiro sobrecarregando o construtor, criando dois construtores: um com parâmetro do tipo int e outro do tipo String. Ambos devem inicializar o atributo valor.

class QuaseInteiro {
    public int valor;

    public QuaseInteiro(String valor) {
        this.valor = Integer.parseInt(valor);
    }

    public QuaseInteiro(int valor) {
        this.valor = valor;
    }
}

Entradas relacionadas: