O problema é que na questão que me passaram, a classe Professor não pode ser um aluno, entende? Tem que existir uma classe que seja Aluno e Professor ao mesmo tempo.
Adolfo_Rodrigues
Mas a classe “Main” do exemplo é ao mesmo tempo e Professor e Aluno.
Se você fizer:
Main a = new Main();
System.out.println(a instanceof Aluno);
System.out.println(a instanceof Professor);
As respostas serão “true” e “true”, logo a classe é Aluno e Professor ao mesmo tempo. Não era essa a questão da prova?
peczenyj
Um professor leciona uma materia.
Um aluno assiste uma materia.
Um professor pode ser um aluno assistindo uma materia de pós graduação.
Talvez, então, professor extends aluno
Um objeto que se comporte como professor e como aluno, com herança simples, pode ser feito assim ou
outra_coisa extends professor , professor extends aluno
guilherme.chapiewski
Eu tenho a impressão que o que ele queria que você fizesse era criar um Adapter. Apesar de não fazer muito sentido semântico, é uma forma utilizada para “imitar” herança múltipla:
Tive problema parecido usei algo parecido com isso (escrevendo de cabeça).
Ainda que no meu problema era mais complicado pq haviam vários roles e cada um podia ter valores diferentes dependendo da pessoa.
publicclassProfessorimplementsRole{..}publicclassAlunoimplementsRole{..}publicclassPessoa{privateSet<Role>roles;publicvoidaddRole(Rolerole){..}publicbooleanisRole(Rolerole){..}}publicclassMain{publicstaticvoidmain(String[]args){Pessoajose=newPessoa();Pessoamaria=newPessoa();jose.addRole(newProfessor());jose.addRole(newAluno());maria.addRole(newAluno());System.out.println("José é professor ? "+jose.isRole(Professor.class)?"sim":"não");System.out.println("José é aluno ? "+jose.isRole(Aluno.class)?"sim":"não");System.out.println("Maria é professor ? "+maria.isRole(Professor.class)?"sim":"não");System.out.println("Maria é aluno ? "+maria.isRole(Aluno.class)?"sim":"não");}}
Adolfo_Rodrigues
Mas não é assim que está no exemplo do truck1n?
Aldrin_Leal
Eu acho que o post-scriptum excluia adapter. Mas a minha resposta é apenas uma citação:
“Mestre é quem, de repente, aprende”
(Guimarães Rosa)
guilherme.chapiewski
Verdade, não tinha visto.
Mas no fim das contas o que importa é que essa é mais uma perguntinha idiota de entrevista de emprego que não prova nada
Luca
Olá
andre_guitar7:
Tenho dois objetos: aluno e professor são classes simples e cada um tem seus atributos e métodos particulares.
Pergunta: como posso criar um objeto que seja aluno e ao mesmo tempo professor, sabendo que em Java não existe herança multipla?
Ps: Não será aceito um objeto que tenha aluno e professor como atributos.
Aluno e Professor são classes simples, isto é, nenhum dos dois estende nada nem implementa nada
Não se pode usar composição
Então só existe uma resposta sobre como criar um objeto assim em Java:
Object aluno_professor = new Object();
[]s
Luca
R
rochinha
foradosistema:
ta certo na forma do maracuja!
se nao for assim vou rasgar a minha scjp
Eu nem postava nada no portal por causa de certos problemas, mas tenho que te postar, “vou jogar minha certificação fora” nossa meu põe um anuncio no GUJ que vc é certificado!!! e acredito que vc é muito amigo do maracuja para tomar uma atitude dessas!!!
Little Rock
T
truck1n
Luca:
Olá
andre_guitar7:
Tenho dois objetos: aluno e professor são classes simples e cada um tem seus atributos e métodos particulares.
Pergunta: como posso criar um objeto que seja aluno e ao mesmo tempo professor, sabendo que em Java não existe herança multipla?
Ps: Não será aceito um objeto que tenha aluno e professor como atributos.
Aluno e Professor são classes simples, isto é, nenhum dos dois estende nada nem implementa nada
Não se pode usar composição
Então só existe uma resposta sobre como criar um objeto assim em Java:
Object aluno_professor = new Object();
[]s
Luca
Boa Luca!
F
foradosistema
que nada rochinha! nem conheco o maracuja! escrevi so para simplificar a resposta.
este conceito que o andre_guitar7 colocou tem muito na certificacao.
bele! fuiii :thumbup:
andre_guitar7
guilherme.chapiewski:
Eu tenho a impressão que o que ele queria que você fizesse era criar um Adapter. Apesar de não fazer muito sentido semântico, é uma forma utilizada para "imitar" herança múltipla:
Tenho dois objetos: aluno e professor são classes simples e cada um tem seus atributos e métodos particulares.
Pergunta: como posso criar um objeto que seja aluno e ao mesmo tempo professor, sabendo que em Java não existe herança multipla?
Ps: Não será aceito um objeto que tenha aluno e professor como atributos.
Aluno e Professor são classes simples, isto é, nenhum dos dois estende nada nem implementa nada
Não se pode usar composição
Então só existe uma resposta sobre como criar um objeto assim em Java:
Object aluno_professor = new Object();
[]s
Luca
Na verdade, me referia que a classe Professor não poderia herdar de Aluno. O que foi feito anteriormente é “Professor extends Aluno”. Acho que não estava tão difícil de compreender isso…
Luca
Olá
Sua pergunta foi bem clara e eu compreendi MUITO bem. Está lá escrito com todas as letras que aluno e professor são classes simples. Se você queria escrever aluno ou professor é uma classe simples ou ainda que aluno e professor podem ser interfaces, agora é tarde.
Se agora você mudou de idéia e quer dizer outra coisa, então fique a vontade e diga esta outra coisa fazendo uma outra pergunta. Mas a anterior só tem a resposta que eu dei e quem prometeu rasgar a certificação que trate de cumprir sua promessa.
[]s
Luca
Zakim
um assunto que parecia simples ficou interessante … hehehe
a unica forma de simular toscamente uma herança multipla com java é se implementar uma interface e herdar uma classe
qualquer outra forma não seria uma herança"tosca multipla"
então ja que a herança multipla não existe, não sobra outra alternativa se nao a que o maracuja descreveu.
Sem falar que essa curiosidade colocou em jogo a scjp do nosso colega… heheheh
é isso ai… o professor pode ser um aluno sim!
Zakim
acredito que houveram varias interpretações para uma pergunta meio abstrata…
Usar a colocação “Uma classe simples” depende to contexto em que estamos. Uma classe simples pode sim ser uma aluno que herda uma pessoa por exemplo. Sem falar que pra vc construir uma classe simples em java vc usa uma biblioteca padrão. Se o conceito de classe simples é uma classe sozinha sem nada, entao as cpisas podem variar um pouco mais…
Quem fez a pergunta usou a ABSTRACÃO! heheheh
Acredito que a pergunta deve ser refeita ou que caso a pergunta seja essa mesma! que o dono dela mostre a resposta!
essa resposta deve ser ampla suficiente para responder a todas as interpretações de uma só vez!
Kenobi
Saudades dos Mixins … heheh :-), POG de alta qualidade para esse caso :-).
Jonatas
Kenobi:
Saudades dos Mixins … heheh :-), POG de alta qualidade para esse caso :-).
kkkkkk
Head First Gambiware
Abdon
publicclassAluno{booleanisProfessor;}
hohohoho
R
ReNats
andre_guitar7 eu acho que ou vc está enganado quanto ao enunciado do problema, ou eu que não estou entendendo nada…
Para mim, uma possível solução, seria a do guilherme…é a que mais se encaixa no que vc quer…mas tem aluno e professor como atributos, e vc falou que não poderia ter…
Então se não é nada disso que o pessoal postou, qual seria a solução? Não consigo enxergar…
T
thingol
a) Ele disse OBJETO não CLASSE, portanto a resposta certa é a do Luca.
b) Se entendermos “objeto” como “classe” (você sabe que há uma confusão lascada), use C++ ou Eiffel (ele não disse que era para fazer em Java - só mencionou que Java não aceita herança múltipla). Não sei como seria em Eiffel - em C++ seria.
essa foi alem da imaginação… huahauhauhau… Mas tambem é uma interpretação valida.
JMan
Classe extends Professor
Professor extends Aluno
pronto.
JMan
Olha, se não for da forma como coloquei, procure a resposta com quem aplicou o teste em você e poste a resposta aqui, pq então eu não vejo outra forma.