Dúvida Geral

Viva!

Tou aqui com umas dúvidas. Será que me podiam esclarecer?

1 - Quais sao as formas de acrescentar novos comportamentos a uma classe já definida sem alterar o código?

2 - E numa aplicação de ordenação prentendo ordenar pelo tamanho, numa base de dados, todos os objetos residentes em memória. O que preciso fazer??

3 - Qual a diferença entre uma classe abstrata e um interface?

4- Como é possivel poder aceder a campos e/ou métodos sem instanciar objetos? um exemplo…

Obrigado

Sim, claro!

Com herança.

Tamanho do que? Do Objeto? Campo tamanho?

A interface apenas declara os métodos. Uma classe abstrata pode implementar alguns métodos.

Usando membros estáticos

De nada… próximo…

Para além da herança mais uma forma de fazer isso?

Quero ordenar pelo tamanho os objetos (de diferentes hierarquias) residentes em memória

De nada… próximo…

Sem herança? Sei lá… via AOP?

Polimorfismo não??

Polimorfismo não tem nada a ver com isso.

Sobre a questao “Quais sao as formas de acrescentar novos comportamentos a uma classe já definida sem alterar o código”, eu diria que não há nenhuma forma de fazer isso!

Mas se herança vale, então delegação, através de composição, tb vale!

[quote=Gerson]Sobre a questao “Quais sao as formas de acrescentar novos comportamentos a uma classe já definida sem alterar o código”, eu diria que não há nenhuma forma de fazer isso!

Mas se herança vale, então delegação, através de composição, tb vale!
[/quote]

Não percebi essa… Pode ser um pouco mais explicito Gerson?

Com certeza :mrgreen:

Dá até pra fazer herança múltipla :smiley:

Com certeza :mrgreen:

Dá até pra fazer herança múltipla :smiley: [/quote]

Atraves de interfaces né?

Com certeza :mrgreen:

Dá até pra fazer herança múltipla :smiley: [/quote]

Atraves de interfaces né?

[/quote]

Mais ou menos, não é só herança múltipla de “interface” (nomes de métodos) mas também de implementação.

Não, através de AOP mesmo. Lembra-se que você não quer “alterar” o código da classe.

Eu sou novo nisto, mas o único modo que conheço para fazer herança múltipla no Java é atraves de Interface…

Depois que você estiver entendendo bem Java e orientação a objetos, dê uma olhada nas implementações de orientação a aspectos que tem por aí que você vai entender isso bem direitinho, especialmente o AspectJ e o Spring AOP.