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
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;
    }
}