-
Um dos pontos que se ganha com herança é polimorfismo
Cachorro c = new Cachorro();
Gato g = new Gato();
Animal a = c;
Animal b = new Gato();
-
Polimorfismo: O polimorfismo costuma ser chamado de o terceiro pilar da programação orientada a objetos, depois do encapsulamento e a herança. O polimorfismo é uma palavra grega que significa "de muitas formas" e tem dois aspectos distintos.
-
Polimorfismo:
Polimorfismo
Significa “várias formas” é a
capacidade em uma linguagem orientada a objetos de permitir que um método ou
operação seja executado de várias maneiras diferentes.
Permite programar no geral em vez de
programar no específico. Em particular, permite escrever programas que
processam objetos que compartilham a mesma superclasse (direta ou
indiretamente) como se todos fossem objetos da superclasse; isso pode simplificar
a programação. Em uma hierarquia de classes, denomina-se polimorfismo a
especialização do comportamento de uma classe em suas subclasses.
Fonte: Deltel java como programar
-
a) ERRADO - Sobrescrever métodos de uma superclasse em uma subclasse não só é possível como muito útil.
b) ERRADO - Pode existir N subclasses derivadas de uma única superclasse.
c) ERRADO - As subclasses podem ter seus métodos e/ou construtores sobrecarregados por suas próprias subclasses, portanto a alternativa também está errada.
d) CORRETO - O polimorfismo é um princípio consequente do mecanismo de herança, portanto onde há herança pode haver polimorfismo.
e) ERRADO - Apesar de o C++ por exemplo permitir herança multipla, outras linguagens como o JAVA não o permitem. Assim, não é toda linguagem OO que permite tal construção.
-
a) não é possível sobrescrever em uma subclasse, um método de sua superclasse. (ERRADA, para quem ja estudou o conceito de polimorfismo do tipo dinâmico, saberá que é possível sim sobrescrever métodos que vem de uma superclasse para redefinir o seu comportamento
b) cada superclasse pode ter apenas uma subclasse. (apenas uma ? Falso se a questão falasse "uma ou mais" aí sim, item errado)
c) ERRADO
d) Claro que é possível
-
Encapsulamento, consiste em esconder ou não permitir acesso direto aos atributos e métodos de uma classe.
Exemplo:
class Pessoa{
private nome;
public String setNome(String nome){
this.nome = nome;
}
}
Vale salientar que não são todos os métodos que devem ser encapsulados, como por exemplos: Get´s e Setter´s.
-
d
è possivel usar herança para conseguir encapsulamento quando houver baixo acoplamento e alta coesao entre as classes; independencia entre as classes significa que elas sabem poucos detalhes uma de outras, facilitando alterações sem necessitar mexer em classes nao-relacionadas.
-
a)não é possível sobrescrever em uma subclasse, um método de sua superclasse.
b)cada superclasse pode ter apenas uma subclasse.
c)somente as superclasses poderão ter métodos ou construtores sobrecarregados. (Subclasses também pode ter métodos sobrecarregados)
d)é possível se obter polimorfismo. (correto)
e)é possível a implementação de herança múltipla, em todas as linguagens orientadas a objetos.(Java não permite)
-
⦁ não é possível sobrescrever em uma subclasse, um método de sua superclasse.
Errado. É possível sim por meio da técnica de sobrescrita de métodos.
⦁ cada superclasse pode ter apenas uma subclasse.
Errado. Não existe essa limitação. Uma superclasse pode ter inúmeras subclasses.
⦁ somente as superclasses poderão ter métodos ou construtores sobrecarregados.
Errado. A própria classe pode ter métodos ou construtores sobrecarregados.
⦁ é possível se obter polimorfismo.
Certo. Em aplicações que utilizam herança é possível se obter polimorfismo por meio da sobrescrita de métodos. O programa só saberá qual método executar (superclasse ou subclasse) no momento da execução a depender da instância.
⦁ é possível a implementação de herança múltipla, em todas as linguagens orientadas a objetos.
Errado. Em Java e C#, por exemplo, não é possível implementar herança múltipla.
Resposta: D