Ricardo, me permita corrigí-lo em um aspecto. Mesmo que a classe Object fosse abstrata, seria possível ao método que você
citou funcionar desta forma, pois todas as classes implicitamente são herdeiras (estendem) a classe Object, para exemplificar, de uma olhada no seguinte código:
public class SubObject {
public Object getObjeto() {
SubObject sb = new SubObject();
Object obj = (Object)sb;
return obj;
}
}
Como podemos ver, na segunda linha do método, é feito um cast do objeto do tipo SubObjeto para um objeto do tipo Object (na verdade, o código de casting "(Object)" é opcional, coloquei ele apenas para tornar o código mais claro). Desta forma, seria possível retornar objetos Object mesmo que a classe fosse abstrata, pois cria-se instâncias de classes que herdam de Object e faz-se o casting para Object. Na verdade, nunca cheguei a uma situação em que fosse necessário um código como:
Object obj = new Object();
Se ainda estiver com dúvidas, busque material sobre o funcionamente de Casting e da palavra chave abstract no Java. Busque também ler alguns materiais sobre herança em POO pois é importante ter estes conceitos para compreender melhor o funcionamento de casting e classes abstratas em java.
Quanto aos motivos da classe Object não ser abstrata, acredito que os demais colegas já tenham explicado em outras mensagens.
De qualquer forma, espero ter ajudado.
[]s
Carlos H.
Ricardo Grego wrote:
Paulo, Estou começando a estudar Java então não tenho muita certeza do que vou te falar. Mas sou tão iniciante que como estou aprendendo a usar Vectors agora, acho que me deparei com a resposta da sua pergunta.Quando se usa o método 'get' para recuperar objetos do vector, ele retorna um objeto da classe Object, e é necessário fazer o cast dele para a classe correta. Acho que se Object fosse abstrata o Vector não poderia funcinar da forma que está. Por favor me corrijam se eu falei elguma besteira. []'s Ricardo Grego --- Paulo Silveira <[EMAIL PROTECTED]> escreveu: > Oi pessoal!Uma vez alguem me perguntou, e eu não soube dar um motivo 100%: "Porque a java.lang.Object não é abstract"? Ela poderia perfeitamente ser abstract, já que não é preciso ter métodos abstratos para a classe ser abstrata. Você poderia ainda se referenciar a Objects, criar array de Objects e tudo mais. A única coisa que você não poderia fazer, seria instanciar Objects. A única utilidade de instanciar Objects, a meu ver, é utilizar como objetos de tag, ou como mutex (declara uns Objects estáticos e da syncrhinized neles!). Mas pra isso basta você criar uma inner classe bem inutil, só pros mutexes e coisas do gênero. Existe alguma coisa que faria o java.lang.Object precisar ser concreta? Ou foi apenas uma decisão de implementação? ====================== Paulo Eduardo Azevedo Silveira Grupo de Usuários Java http://www.guj.com.br/_______________________________________________________________________ Yahoo! GeoCities Tudo para criar o seu site: ferramentas fáceis de usar, espaço de sobra e acessórios. http://br.geocities.yahoo.com/ ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm historico: http://www.mail-archive.com/java-list%40soujava.org.br para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------
-- /** * [Carlos H.] - [EMAIL PROTECTED] * Núcleo de Informática UNERJ - Centro Universitário de Jaraguá do Sul * * "O Sábio fala pouco do que muito sabe * O Tolo fala muito do que pouco sabe..." */
