Interface e classe

3 respostas
E

Sou iniciante em java, gostaria de saber a diferença básica entre interface e classe?

Fox

3 Respostas

diego2005

Uma interface é implicitamente abstract, o que torna impossível instanciá-la. Classes também podem ser abstratas, desde que você a declare assim:

public abstract class Teste {}

O que também a tornará impossível instanciá-la.

Uma classe só pode estender uma classe (herança simples):

class Base {}

public class Sub extends Base {}

Uma classe pode implementar mais de uma interface:

interface I1 {}

interface I2 {}

public class Imp implements I1, I2 {}

As variáveis da interface são sempre implicitamente public static final, os métodos são sempre implicitamente public abstract (então a classe que implementar uma interface deve implementar todos os seus métodos).

Cara, não sei se é bem isso que você queria saber, qualquer coisa posta ai de novo que o pessoal pode explicar melhor...

T+

Mantu

Basicamente, beeeem basicamente, uma classe é uma estrutura de dados que representa um conceito concreto (um carro, um ser humano, uma casa, um animal, etc) ou abstrato (Uma lista de dados, uma folha de pagamento, um cadastro, um e-mail, uma árvore de dados, etc). Uma classe pode ter métodos e campos que representem as ações e estados, respectivamente, daquilo que ela representa.
Já uma interface funciona como se fosse um catálogo que lista métodos disponíveis para o uso. Uma interface é, normalmente, implementada por uma classe. Esta classe deve ter implementados todos os métodos “catalogados” na interface. Uma analogia seria pensar na interface como se fosse um cardápio e na classe como um restaurante. Se o restaurante te mostra o cardápio, ele deve então ser capaz de te servir todos os pratos ali listados. Se no cardápio tem “kafta e charuto de uva” e vc pedir este prato, o restaurante tem que te trazer a “kafta e charuto de uva”, ou seja, se na interface existe um método chamado kaftaComCharutoUva(), e vc invocar esse método, a classe que implementou essa interface tem que ter também um método chamado kaftaComCharutoUva(). Uma classe que implementa uma interface, tem que implementar todos os métodos da interface.
Um lance legal das interfaces, ainda aproveitando a analogia do restaurante, é o seguinte: Um restaurante diferente pode servir o mesmo cardápio daquele primeiro restaurante, só que de forma diferente. Por exemplo, a kafta do primeiro pode ser maior que a do segundo, embora o prato seja o mesmo (kafta e charuto de uva) :wink:
Isso tá bem por cima, ok? Tem muito mais sobre o assunto a ser aprofundado.
Qq coisa, pergunte mais! :thumbup:

I

Cara fiquei com preguiça agora de ir na parte de artigos e tutoriais pegar o link…

Ja que vc é iniciante que tal começar a estudar lendo e se surgir uma duvida postar?

Bom mais vamos la.

Classe

- E o conceito de orientação a objetos, reaproveitamento de codigo e etc. Podemos definir classes com diversos escopos diferentes, diversas logicas de implementação e etc e com varios objetivos.

Interface

- É um contrato que a classe assina! E a classe que assina tal contrato é OBRIGADA a implementar todos os metodos da interface.. Em uma interface não existe implementação de metodo somente assinaturas.
Criado 18 de agosto de 2006
Ultima resposta 18 de ago. de 2006
Respostas 3
Participantes 4