Extender ou instanciar?

O que é mais aconselhável: extender uma classe ou criar uma instância dela?

Um exemplo prático seria uma janela (JFrame). O tamanho do código, e a memória utilizada pela classe, seriam iguais se ela extendesse a classe JFrame ao contrário de criar um objeto interno dela?

Fenrir…

Esta questao de herdar ou utilizar uma classe, vai de como o sistema devera comportar-se, por exemplo:

  • Basicamente, vc faz uma pergunta, o que minha classe precisa, ou seja, um classe Casa, vc perguntaria, ela precisa de uma fechadura ou é uma fechadura, vc responderia que ele necessita, entao vc cria um objeto fechadura para ela, mas se vc perguntar por exemplo, minha casa tem uma EstruturaCasa, ou ela sera uma EstruturaCasa, partindo do principio de que EstruturaCasa trata de como uma casa deve comportar-se, vc responderia que ela É uma EstruturaCasa, ou seja, vc extenderia EstruturaCasa, que será utilizada para várias casas, e que será melhor definida para cada casa, singularmente, em cada implementacao.

Não sei se fui bem claro, mas é mais ou menos isso que se tem que ter ideia para comecas. Vc deve também aproifundar-se em Orientacao a Objeto para obter maiores detalhes de como fazer esta diferenciacao entre SER ou TER algo, e tambem outros conceitos muito importantes.

[]´s

Dê uma olhada nesse tópico:

http://www.guj.com.br/forum/viewtopic.php?t=2542

[]'s

Herança é algo super prático, mas apresenta diversos problemas que tornam seu uso recomendável apenas quando for realmente necessário, como por exemplo quando você precisa de polimorfismo (e mesmo nesse caso dá pra usar interfaces pra obter um efeito semelhante).
O Item 14 do livro Effective Java trata desta questão, então quem tiver interesse pode ler o meu resumo.

usando as tecnicas da OOP e muito facil decidir…

Pergunte ao novo objeto se ele e um tipo ou subtipo do pai…
Se sim… Use a heranca, se nao use a composicao…

[]'s