Classes implementadas x extendidas

6 respostas
D

Oi pessoal, estava tentando dar continuidade aos estudos e me surgiu uma dúvida, posso eu implementar ou extender uma mesma classe? claro, uma coisa ou outra, se é possível a mesma classe ou ser extendida ou ser implementada… criei uma classe qualquer(para n errar na esclora de uma classe do java e me complicar) e não deu certo a tentativa, a classe em uso era simples , com uma propiedade e um get e um set, consegui extender mas n implementou, isso é possível ou eu que não caprochei na classe? sei que uma classe para se uma interface tem obedecer certas regras, então só interfaces podem ser implementadas?
e ainda não saquei legual, quando devo dar preferencia a uma interface ao invéz de implementar alguns métodos por conta própia.

quem pode me ajudar e esclarecer as idéias???

6 Respostas

T

Em Java, você “implementa uma interface” e “estende uma classe”.
Não há como uma classe “implementar uma classe”.
Entretanto, uma interface pode “estender uma interface”.

Em C# não há essas duas palavras-chave (“extends” e “implements”); você só usa a pontuação “:”.
Acho que isso é mais confuso que no Java, mas é uma herança do C++, onde isso também ocorre.

D

hummm como uma interface é uma classe cheia de métodos que n fazem nada, só indicam um caminho a seguir e te obriga a implementa-lás, estendendo uma interface na outra, só acumulo funções na classe mais baixa, aumentado assim suas funções, certo?

sergiotaborda

Certo. Só um detalhe : uma interface não é uma classe. interface é um tipo. classe é um tipo.

"interface é um tipo cheio de métodos … "

Jair_Rillo_Junior

Pense que a interface é um contrato. Todas as classes que forem implementar a interface, terão necessariamente os mesmo métodos (nem sempre implementados corretamente, mas pelo menos a assinatura dos métodos serão as mesmas).

Interface é muito utilizado para reaproveitamento de código. Olhe esse arquivo do GUJ: http://www.guj.com.br/java.tutorial.artigo.123.1.guj.

ViniGodoy

Dá uma olhada nesses dois links. O primeiro falo do uso de interfaces:
http://www.guj.com.br/posts/list/51866.java#273117

E o segundo sobre uma aplicação disso:
http://www.guj.com.br/posts/list/55387.java#290673

Acho que vão te ajudar. :wink:

D

Vlw pessoal, me ajudou bastante.
vejam a baixo, como faço para usar a propiedade e o método da clase mãe?

class Pessoa{

float tamanho;

andar();

}
class Pessoa2{

float tamanho;

andar();

}
public static void main(String args[]){

Pessoa p = new Pessoa2();

p.tamanho; // ====>>>  aqui é a propiedade da classe Pessoa2.

p.andar(); // ====>>>  aqui é o método da classe Pessoa2.

// para chamar a propiedade e método de Pessoa?
super.tamanho; //====>>> tá certo?
super.andar(); //====>>> tá certo?
}

Criado 1 de outubro de 2008
Ultima resposta 6 de out. de 2008
Respostas 6
Participantes 5