Buscar

4 1 Introdução à herança

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1. Na orientação a objetos temos um importante conceito, que é a herança. Marque a alternativa que melhor define herança em orientação a objetos:
A. Herança refere-se ao comportamento dos objetos.
O comportamento dos objetos é definido por métodos.
B. Quando o valor de um atributo pode ser compartilhado entre vários objetos.
Um atributo cujos vários objetos podem compartilhar seu valor na mesma classe é um atributo de classe.
C. Quando há a necessidade de utilizar uma classe que está em outro pacote, fazemos uso da palavra-chave herança.
Para utilizar classes de pacote diferentes, é necessário utilizar a palavra-chave import mais o caminho da classe seguido do seu nome.
D. Dizemos que há herança quando duas ou mais classes dependem uma da outra.
A dependência entre classes é chamada de acoplamento.
E. 	A herança é um mecanismo para aprimorar as classes existentes.
Com uma estrutura de herança, outras classes podem usar métodos e atributos de uma classe genérica.
2. Quando identificamos a possibilidade de usar herança em nosso projeto?
A. Quando temos a necessidade de reduzir código.
Reduzir código é uma prática interessante, entretanto, apenas esta justificativa não concretiza o uso de herança.
B. Quando existe relação entre classes.
É uma observação interessante, todavia, nem todas as relações podem se transformar em herança.
C. Quando necessitamos aumentar a produtividade no desenvolvimento.
Devemos sempre aplicar técnicas e ferramentas para alavancar a produtividade no desenvolvimento, contudo, apenas este argumento pode ser insuficiente para que possamos construir uma estrutura de herança.
D. Quando temos uma relação e um ou vários atributos em comum entre duas ou mais classes.
Esta realmente é uma boa forma de identificar a possibilidade de criar uma estrutura de herança em nossos projetos.
E. Quando classes possuem muitos atributos.
O fato de a classe possuir muitos atributos pode ser inevitável em muitos casos, mas isso não significa que teremos a possibilidade de criar uma estrutura de herança.
3. Em relação à herança podemos afirmar que:
A. Classes especializadas são aquelas específicas de um determinado domínio.
Todas as classes são específicas para o domínio no qual foram criadas.
B. Em uma estrutura de herança, todas as classes necessitam possuir o método main().
O método main é necessário para executar aplicações.
C. A herança acontece quando, no desenvolvimento, temos a possibilidade de reuso de componentes.
Essa prática chama-se reutilização de componentes.
D. Em herança possuímos classes genéricas e especializadas.
Também conhecidas como superclasses e subclasses, respectivamente, elas formam a estrutura de herança.
E. Métodos não podem ser herdados por subclasses.
As subclasses podem herdar qualquer membro da superclasse, desde que os mesmos estejam visíveis às mesmas.
4. Analise o seguinte código de uma classe em java:
public class Agua extends Bebida {
private String ph;
public String getPh(){ return ph;
}
public void setPh(String ph){
this.ph=ph;
}
}
A. O código é inválido pois não possui um método main().
O método main(), é importante para que possamos executar uma aplicação. No entanto, algumas classes são construídas na condição de modelos para criação de objetos.
B. Não é necessária a criação de métodos de acesso como get e set, pois a classe possui apenas um atributo.
O número de atributos não define a utilização de métodos de acesso.
C. A palavra-chave "extends" informa que a classe "Agua” é uma extensão da classe "Bebida".
Para implementarmos uma subclasse é necessário colocar o nome da subclasse seguido da palavra extends e em seguida o nome da superclasse.
D. A classe "Agua", quando instanciada, terá acesso apenas ao atributo ph, através dos métodos set e get.
Além do acesso ao atributo ph, após instanciarmos a classe Agua, será fornecido acesso a todos os membros de interface pública da classe Bebida.
E. A classe não poderá ser instanciada, pois é necessário que os métodos de acesso da superclasse estejam implementados na subclasse
Quando criamos uma estrutura de herança, estamos fazendo um reaproveitamento de código, com isso, as subclasses, podem usar os métodos de acesso escritos na superclasse.
5. Analise o código abaixo:
public class Animal {
private int idAnimal;
private String nome;
private int idade;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public int getIdade(){
return idade;
}
public void setIdade(int idade){
this.idade = idade;
}
}
=================== // ============================
public class Mamifero extends Animal{
private String gestacao;
private String especVida;
public String getGestacao(){
return gestacao;
}
public void setGestacao(String gestacao){
this.gestacao = gestacao;
}
public String getEspecVida(){
return especVida;
}
public void setEspecVida(String especVida){
this.especVida = especVida;
}
}
=============================//==========================
public class Cachorro Mamifero{
private String raca;
public String getRaca(){
return raca;
}
public void setRaca(String raca){
this.raca = raca;
}
}
============================//============================
public class Homem extends Mamifero{
private String etnia; public String getEtnia(){
return etnia;
}
public void setEtnia(String etnia){
this.etnia = etnia;
}
}
A. A classe "Animal" é subclasse de "Mamifero".
A herança possui hierarquia e, com isso, fazemos a leitura de cima para baixo; portanto, a classe "Animal" é superclasse ou mãe de "Mamifero".
B. A classe "Cachorro" está estendendo de "Mamifero".
A classe "Cachorro" possui um erro de sintaxe, pois a mesma não informa a palavra-chave extends.
C. A sintaxe da classe "Homem" está incorreta.
A classe "Homem" é uma classe modelo e sua sintaxe está correta.
D. Por se tratar de herança, a classe "Homem" poderá herdar apenas membros da classe "Mamifero".
A classe "Homem" herdará membros da classe "Mamífero" e "Animal".
E. Na estrutura implementada podemos afirmar que a classe "Homem" é subclasse; a classe "Mamifero" é subclasse e superclasse e a classe "Animal" é superclasse.
A classe "Mamifero" assume o papel de subclasse de "Animal" e superclasse de "Homem".

Continue navegando