Em uma das minhas entrevistas de emprego...  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
Marlon Meneses
Virtual Machine Man
[Avatar]

Membro desde: 10/04/2007 19:20:48
Mensagens: 733
Localização: Belém-Pará
Offline

galera...
em uma das minhas entrevistas de emprego, me foi feita a seguinte pergunta:

"Qual a diferença arquitetural entre uma classe abstrata e uma interface?"

me enrolei todo pra responder mas nao saiu nada que preste...
não consegui me expressar!

então eu queria torcar idéias sobre qual seria a respota

alguém?!

Gigante guerreiro...
DAILEON!!!
[Email]
Scoobydoo
JavaEvangelist
[Avatar]

Membro desde: 19/01/2010 14:22:47
Mensagens: 429
Localização: Gaspar
Offline

http://www.guj.com.br/content/articles/oop/oop.pdf
Se vc tivesse estudado a apostila do Guj tinha sido contratado

This message was edited 1 time. Last update was at 22/01/2010 16:54:12


Site pessoal : http://www.likenerd.com.br
[Email] [WWW] [MSN]
Marlon Meneses
Virtual Machine Man
[Avatar]

Membro desde: 10/04/2007 19:20:48
Mensagens: 733
Localização: Belém-Pará
Offline

acho que o amigo não entendeu...
o negócio é que não soube explicar exatamente com minha palavras!
a questão não foi eu não saber...
foi como formular uma boa resposta!

Gigante guerreiro...
DAILEON!!!
[Email]
Scoobydoo
JavaEvangelist
[Avatar]

Membro desde: 19/01/2010 14:22:47
Mensagens: 429
Localização: Gaspar
Offline

Bom, ai fica difícil.
Tipo, vou te dar umas dicas.
a entrevista de emprego é como o ramo de programação.
Voce pode saber muitu, mas saber e fazer é diferente.
Por isso o mercado de software procura pessoas experientes, com ou sem graduação,
o que importa é que voce sabe se expressar, trabalhar em equipe, se adaptar as necessidades.
Numa entrevista, voce pode saber o que é, mas se você não sabe explicar significa que voce não é tão bom na prática.
Não estou falando por mim isso, estou falando pelos empresarios.
Como por exemplo, voce explicaria seus procedimentos para os seus colegas de equipe.
Apesar de nós programarmos no computador, Dicção e Oratória são muitu necessários no nosso ramo.
Talvez você poderia ter se preparado melhor para a entrevista de emprego.
é só uma sujestão.
Mostre que você sabe fazer e faça acontecer.

Site pessoal : http://www.likenerd.com.br
[Email] [WWW] [MSN]
Marlon Meneses
Virtual Machine Man
[Avatar]

Membro desde: 10/04/2007 19:20:48
Mensagens: 733
Localização: Belém-Pará
Offline

valew pela dica mas enquanto a resposta?!
kd?

Gigante guerreiro...
DAILEON!!!
[Email]
Scoobydoo
JavaEvangelist
[Avatar]

Membro desde: 19/01/2010 14:22:47
Mensagens: 429
Localização: Gaspar
Offline

Sabe le a apostila não --''


Tanto a Classe Abstrata como a Interface são "projetos" de classes e não podem ser instanciadas diretamente, só que a diferença entre elas é que na Classe Abstrata o programador do "projeto" pode definir o funcionamento de algumas funções, enquanto que na interface o programador só define as assinaturas.

Ex de Classe Abstrata



Ex de Interface


Como você pode perceber, eu defini a implementação de uma das funções da minha classe abstrata (a quantidade de funções implementadas eu decido) enquanto que na interface eu não defini nada além das assinaturas de funções (na interface eu só posso fazer isso).
Para instanciar uma classe abstrata ou uma interface você deve criar uma classe que extende uma classe abstrata ou implementa uma interface, em ambos os casos você terá de definir o conteúdo das funções só que a diferença é que no caso da classe abstrata, se você sabe que determinada função foi implementada você pode deixar ela como está, ou utiliza-la em outra parte do código assim:

Ex de Classe que extende uma Classe Abstrata
CODE



Ex de Classe que implementa uma Interface




Resumindo: Na classe abstrata, quem for implementar ela não é obrigado a implementar todos os métodos enquanto que na interface o programador é (mesmo que ele deixe a função em branco será contado como uma implementação).

Site pessoal : http://www.likenerd.com.br
[Email] [WWW] [MSN]
roger_rf
GUJ Master

Membro desde: 29/04/2009 07:40:19
Mensagens: 1091
Localização: Natal/RN
Offline

Uma interface permite declarar a assinatura dos métodos que uma implementação deve oferecer, mas não permite declarar o corpo dos métodos. Já uma classe abstrata permite declarar não apenas a assinatura dos métodos que uma implementação deve oferecer (métodos esses que devem ser marcados com a palavra-chave abstract), como também declarar o corpo de outros métodos.

juniorbnu
Debugger
[Avatar]
Membro desde: 24/04/2007 16:04:15
Mensagens: 57
Localização: blumenau/sc
Offline

outro ponto é o fato de uma classe poder Implementar quantas interfaces quiser mas só pode Extender uma classe Abstrata apenas


[MSN]
Lucas Emanuel
GUJ Master

Membro desde: 09/08/2009 23:48:57
Mensagens: 1143
Localização: Heap
Offline

Em uma das minhas entrevistas de emprego...

Eu estava começando na área de informática, e tinha um teste pesicológico.

Nesse teste o psicólogo me perguntou:

"S do perdigão é vermelho ou preto ?"

respondi:

"Vermelho!"

Psicólogo:

"Bom, perdigão não tem S, quem tem é Sadia, e além do mais S da Sadia é preto..."

Resultado: Não fui contratado.

Marlon Meneses
Virtual Machine Man
[Avatar]

Membro desde: 10/04/2007 19:20:48
Mensagens: 733
Localização: Belém-Pará
Offline

hum...
me desculpe aih por não ter lido!
mas cara...
era isso que tava na minha cabeça...
oq me confundiu foi a frase "diferença arquitetural" por que ele pode ter feito referencia a arquitetura da liguagem ou no arquitetura de um projeto
o que acha?
ou eu to falando bobagem?

Gigante guerreiro...
DAILEON!!!
[Email]
Scoobydoo
JavaEvangelist
[Avatar]

Membro desde: 19/01/2010 14:22:47
Mensagens: 429
Localização: Gaspar
Offline

Não. Vc nao ta falando bobagem...
Talvez o próprio entrevistador quis falar bonito e acabou se enrolando também.
Mas não estressa cara, vc consegue coisa melhor ^^

Site pessoal : http://www.likenerd.com.br
[Email] [WWW] [MSN]
PAULOSJR
What is classpath?

Membro desde: 23/11/2009 14:42:24
Mensagens: 7
Offline

Cara interface eu não sei te explicar, mais classe abstrata posso te dizer.

A classe abistrata é algo do tipo uma classe para todos que vc vai usar como herança para alguma coisa.

O exemplo que meu professor me falou foi o seguinte.

Imagine uma classe chamada animal, com o campo som;


Note que todo animal tem um som;

Então vc poderia criar um cachorro e pedir para ele emitir um som entendi:

Em uma classe não abistrata vc criaria uma classe cachorro e pedisse para ele latir.


EM uma classe abstrata é algo genérico que pode ser usado por todos.
gilmatryx
JavaChild
[Avatar]

Membro desde: 23/06/2007 23:00:38
Mensagens: 149
Localização: /Br/RN/Natal
Offline

Olá galera..

O termo "diferença arquitetural" pode ter sido usado no contexto de arquitetura de sw.
Aconselho a darem uma pesquisada sobre reuso, acoplamento e coesão (conceitos básicos, mas nem tanto).

Respondendo a pergunta..

Muitos falam que os frameworks atuais usam @anottantion e que isso traz menos acoplamento... etc..

Por que? Eh bom dah uma pesquisada também.. rsrsrs

Agora um ponto chave da pergunta é que uma interface traz menos acoplamento do que uma classe abstrata.

Por que?

Gilmar P.S.L. - @gilmatryx
Projeto JRimum
Grupo JRimum
Twitter @jrimum
Facebook JRimum
[Email] [WWW]
menphis
Entusiasta Java

Membro desde: 22/01/2010 12:25:34
Mensagens: 15
Offline

"it's not what you know, it's when you know it"

Sábia frase do livro do SCJP.

"It's not what you know, it's when you know it."

How Projects Really Work.
Jesuino Master
GUJ Ranger
[Avatar]

Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline

Marlon Meneses wrote:galera...
em uma das minhas entrevistas de emprego, me foi feita a seguinte pergunta:

"Qual a diferença arquitetural entre uma classe abstrata e uma interface?"

me enrolei todo pra responder mas nao saiu nada que preste...
não consegui me expressar!

então eu queria torcar idéias sobre qual seria a respota

alguém?!

Velho,

Ficou óbvio que ele não queria conceitos, ele não queria que você falasse conceitos de interface e nem de classe abstrata, ele já foi um ponto acima, considerando que você tinha o conceito dos dois.

Não sei ao certo[não estava lá], mas parece a questão levantada pelo Gof: Herança X Composição.

Eu responderia(não precisamente assim) que classe abstrata define, através da herança, uma interface comum para suas subclasses e interface define contratos de implementação(isso é uma versão minizada do que eu responderia, porque só essa afirmação ficaria muito vaga).

Sugestão de leitura: páginas 28 a 36 do livro do Gof. Lá terá as respostas!

Uma coisa é certa: se você tentar[tentou] explicar o conceito desses dois, vai parecer que você está dando voltas e que não sabia a resposta. Ele perguntou a diferença arquitetural, não conceitual.

Mas fale ai da vaga, isso pode ajudar as pessoas a se prepararem se forem chamadas para participar de uma entrevista a vagas semelhantes!

William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta!
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team