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.
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
daquinho
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).
Vlw pessoal, me ajudou bastante.
vejam a baixo, como faço para usar a propiedade e o método da clase mãe?
classPessoa{
floattamanho;
andar();
}
classPessoa2{
floattamanho;
andar();
}
publicstaticvoidmain(Stringargs[]){Pessoap=newPessoa2();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?
}