Soraia-Prisco wrote:
[EMAIL PROTECTED]">
Carlos,
     Não sou uma expert em java (ainda), mas a informação que tenho de universidade e de livros é :
         -Java implementa a herança multipla através da utilização de "interfaces", isto já pude comprovar;
Eu já ouvi falar isso, mas é um statement meio estranho. Com a herança multipla uma classe herda toda a funcionalidade de ambos os pais. Interfaces em java somente indicam os methodos a ser implementada pela classe. Implements tem muito mais a ver com polimorfismo do que com multiplo herança. Um exelente exemplo de herança multipla e o do iostream (C++):
class stream{
}
class istream : public stream{
}
class ostream : public stream{
}
class iostream : public istream : public ostream{
}
ou seja a classe stream implementa tudo que é necesario para abrir um stream, istream implementa tudo necessario para um input strean, ostream implementa tudo que é necesario para um output stream. O IOStream não precisa mais implementar nada para ser usado para input ou output.

em java seria algo assim:

(abstract??) class Stream{
}
interface IStream{
}
interface OStream{
}
class IOStream extends Stream, implements IStream, OStream{
}
quase a implementação toda cabe na classe IOStream. isso quer dizer que em ambos os linguagens posso fazer:
Stream s = new IOStream();

Mas de jeitho nenhum o caso de java pode ser considerado 'multiple inheritance', so se for:
class IOStream extends IStream, OStream{}
e java não aceita isso.
[EMAIL PROTECTED]">
         -Tem uma linha de 'pensadores' de Java que dizem que Java não é 100% OO pois uma linguagem pura OO só pode manipular objetos e como o Java tem variáveis básicas (double, int, char, short, long, byte, float), que não são objetos, isso a tornaria uma linguagem "não puramente OO".
Hmm acho que não tem nada a ver com OO. Eu não conheço nenhuma linguagen OO que não tem primitivos.
[EMAIL PROTECTED]">
         -Assim como tem pensadores que acreditam que essa facilidade apresentada pela linguagem de ter variáveis básicas não a desqualifica como uma linguagem 100% O.O., pois a mesma implementa todas as funcionalidades da orientação a objetos.
è isso mesmo.

Eu não posso me imaginar uma classe Float que não precisa de um primitivo float. Uma vez que em java não existe operator overloading, para addicionar um valor preciso de primitivos ou usar a classe Math para fazer isso, já pensou:
x += 1; ou
Integer X = new Integer(0);
X = Math.add(X, new Integer(1));
ou   Math.xor(X, new Integer(x));

ae se isso deixa Java de ser 100% OO, prefiro linguagens não OO

[EMAIL PROTECTED]">
 
Espero ter contribuido. Soraia
 
 -----Mensagem original-----
De: Carlos Eduardo Vargas Miranda (Amix) [mailto:[EMAIL PROTECTED]]
Enviada em: terça-feira, 12 de junho de 2001 12:37
Para: [EMAIL PROTECTED]
Assunto: [java-list] OO em Java

Pessoal,

Até hoje pensei que Java pode ser considerada uma linguagem
totalmente (100%) orientada a objetos.
Conversando com dois amigos, ambos tiveram a opinião de que
isto não é verdade, visto que Java não aceita heranças
múltiplas, e uma vez quebrado um paradigma da OO a linguagem
já não pode ser considerada totalmente OO.

Qual a opinião dos colegas?

[]s
Carlos.


Responder a