Help, urgente! herança!

11 respostas
W

[b] Pessoal, fiz um concurso e gostaria de saber se essa questão está totalmente certa. pois quero entrar com recurso e é até amanha 06/04/2010.

A pergunta é o seguinte:

Indique a alternativa errada com relação a linguagem de programação JAVA:

tenho duvida nessa afirmativa:

  • A sentença "“ClasseA extends ClassB” permite que a classe A herde todos os métodos e atributos públicos da classe ClasseB.

Minha dúvida é a seguinte, sei que a afirmação está correta, porem, quando herdo alguma classe, também não posso herdar atributos protected ou private???

peço ajudar a todos… e desde já agradeço!!!

11 Respostas

rodrigo.bossini

winde3:
[b] Pessoal, fiz um concurso e gostaria de saber se essa questão está totalmente certa. pois quero entrar com recurso e é até amanha 06/04/2010.

A pergunta é o seguinte:

Indique a alternativa errada com relação a linguagem de programação JAVA:

tenho duvida nessa afirmativa:

  • A sentença "“ClasseA extends ClassB” permite que a classe A herde todos os métodos e atributos públicos da classe ClasseB.

Minha dúvida é a seguinte, sei que a afirmação está correta, porem, quando herdo alguma classe, também não posso herdar atributos protected ou private???

peço ajudar a todos… e desde já agradeço!!!

A classe A herda todos os membros protected também. Os private não.

W

pow cara, vlw mesmo…

mas só sendo um pouquinho mais abusado, mas concerteza é por uma boa causa. rsrsrs…

tem como você me mandar algum lugar que explique tal afirmação. de preferência de algum livro, artigo ou etc?

magocebolinha

Então winde3 é o seguinte

o modificador de acesso protected restringe o acesso a chamadas de fora do package, ou seja… pode ser acessado por uma classe herdeira…
o modificador private faz com que ele seja inacessível diretamente, podendo ser acessado somente por um método específico! Explico!

class B {

      private String nome = "Cebola";

      public String getNome() {   // Aqui defino o método para acesso ao atributo private

           return nome;

      }
   }
class A extends B {

     public static void main (String args[]) {

     B obj = new B();    //instancia variável e cria objeto da classe B
     
          System.out.println("O valor contido na variável da classe B é " + B.getNome());  //  Só assim recupera o valor contido no atributo nome da classe B
      }
}
magocebolinha

winde3:
pow cara, vlw mesmo…

mas só sendo um pouquinho mais abusado, mas concerteza é por uma boa causa. rsrsrs…

tem como você me mandar algum lugar que explique tal afirmação. de preferência de algum livro, artigo ou etc?

http://pt.wikibooks.org/wiki/Java/Modificadores :slight_smile:

W

vlw pessoal, vou tentar fundamentar essa questão para ver se consigo anulação…

e já vlw como aprendizado tb…

vlw mesmo!

M

Olha a afirmação:

A sentença “ClasseA extends ClassB” permite que a classe A herde todos os métodos e atributos públicos da classe ClasseB.

Sim, é claro, permite! Para mim está afirmação é 100% correta! Independente do pacote e desde que faça o import correto.

E não precisa citar que a classe ClasseA herda os métodos protected também, assim como também poderia herdar os membros com acesso default e não herdaria os membros private.

Seria diferente se afirmasse que permite que a ClasseA herde somente os métodos e atributos públicos da classe ClasseB.

Portanto aqui não cabe uma discussão sobre herdar os membros protected ou default. A questão carece, propositalmente, de mais informações (em qual(is) pacote(s) estão as classes?).

O ponto chave é não confundir a Língua Portuguesa com o Java! Só porque a classe ClasseA poderia herdar outros membros que não fossem públicos não negativa a afirmação.

Coloca as outras alternativas aqui pra gente avaliar também.

Boa sorte!

ViniGodoy

Uma classe herda absolutamente todos os atributos, inclusive os private. O que ela não faz é ver os atributos private, mas eles estão lá. O mesmo vale para os outros casos. Não confundam visibilidade com herança (apesar de que os livros vivem fazendo essa confusão).

S

winde3:
[b] Pessoal, fiz um concurso e gostaria de saber se essa questão está totalmente certa. pois quero entrar com recurso e é até amanha 06/04/2010.

A pergunta é o seguinte:

Indique a alternativa errada com relação a linguagem de programação JAVA:

tenho duvida nessa afirmativa:

  • A sentença "“ClasseA extends ClassB” permite que a classe A herde todos os métodos e atributos públicos da classe ClasseB.

Minha dúvida é a seguinte, sei que a afirmação está correta, porem, quando herdo alguma classe, também não posso herdar atributos protected ou private???

peço ajudar a todos… e desde já agradeço!!!


A afirmativa está incompleta, porém ela está correta pois em momento nenhum ela fala que herdará APENAS os métodos e atributos públicos, não concorda?

W

As outras afirmações são:

A) A sentença “this()” executada na classe ClassA chama o construtor da classe ClasseA.

B ) A sentença “BREAK”, sem label, dentro de uma sentença “FOR” finaliza imediatamente o laço e executa as instruções seguintes do for.

C ) é a que eu já perguntei de vcs

D ) um método privado da classe ClasseA que pertence ao pacote (package) A.B.B não pode ser acessado por uma classe ClasseB que pertence ao pacote X.Y.Z

E ) A sentença “Continue” executada dentro de um while finaliza imediatamente o laço e não executa as instruções seguintes ao while.

lembrando que a questão pede que indique a alternativa errada sobre linguagem java.

dai eu estou batendo na tecla que existem 2 erradas… tanto a C tanto a E.

ViniGodoy

Também acho que a errada seja só a letra E. Não vejo porque a C estaria incorreta. Incompleta, sim, mas incorreta, não.

M

A alternativa correta para a questão é a E, ou seja, o continue não finaliza imediatamente o laço e tampouco impede que as instruções seguintes ao while sejam executadas.
O continue interrompe a iteração atual, fazendo com que as instruções seguintes ao continue, se existirem, não sejam executadas. Mas o laço continua na próxima iteração.

Boa sorte!

Criado 5 de abril de 2010
Ultima resposta 6 de abr. de 2010
Respostas 11
Participantes 6