[RESOLVIDO] Explicação Basica

Tenho tres classes: A, B, C onde A seria a mae B e C seriam as filhas.

Como eu uso herança em java? EXTENDS?


Sempre que eu usar extends terei que implementar todos os metodos herdados ?

Vlw

Dá uma olhada na apostila FJ-11 da caelum:

Tem um capitulo só sobre herança, pode ser util…

Vlw

Não vc não precisa implementar todos os metodos
herdados vc so vai precisar
xamar o construtor da classe herdada
usando o
super();

A herança vc usa o Extends mesmo

public class C extends A

um exemplo:

public class A{
   public void metodoUm(){
      System.out.println("Este é o método UM da class A");
   }
}

public class B extends A{ 
   public void metodoDois(){
      System.out.println("Este é o método DOIS da class B");
   }
}

public class C extends A{ 
   public void metodoTres(){
      System.out.println("Este é o método TRES da class C");
   }
}

A classe “B” recebe por herança o método “metodoUm()” implementado na classe “A”, então não precisa ser implementado novamente,
a não ser que precise “[color=red]sobrescrever[/color]” ele na classe “B” caso queira que ele se comporte de maneira diferente, ou que o métodos seja “[color=red]abstract[/color]” na classe “A
O mesmo se aplica a classe “C” que também recebe por herança o método “metodoUm()” implementado na classe “A”, então não precisa ser implementado novamente.

assim é possivel instanciar B ou C e usar o método da classe A

public class Teste{
   public static void main(String[] args){
      B b = new B();
      b.metodoUm();
      b.metodoDois();

      C c = new C();
      c.metodoUm();
      c.metodoTres();
   }
}

respondendo sua pergunta:
[color=blue]quando você usar o extends não precisa implementar os métodos herdados!!![/color]

note: desde que a superclasse nao seja abstract vc nao precisa implementar os metodos da superclass.

flw!

Mesmo que ela seja abstrata, se ela não contiver nenhum método abstrato não será necessário implementar nenhum método…

assim levando em conta que tem metodos absctract, ate hj nao vejo pq alguem criaria uma class absctract e nao colocaria nenhum metodo absctract, nao sei qual a real utilidade de fazer isso. :S

A única utilidade que eu vejo é criar uma classe que não pode ser instanciada, nem mesmo por métodos dela mesma, o que seria possível caso se definisse o construtor private.

Mas a real utilidade disso não sei, acho mais semântico definir o construtor private quando quiser uma classe que não possa ser instanciada.

Vlw galera>

Vc ja sanaram minha duvida.

[quote=nessa_uepa]A única utilidade que eu vejo é criar uma classe que não pode ser instanciada, nem mesmo por métodos dela mesma, o que seria possível caso se definisse o construtor private.

Mas a real utilidade disso não sei, acho mais semântico definir o construtor private quando quiser uma classe que não possa ser instanciada.[/quote]
-classe abstrata serve como um modelo para outras classes…

-pode fazer com que duas ou mais classes que herdam uma classe abstrata sejam processadas polimorficamente…

-classes abstratas são uteis quando se pensa na arquitetura do seu projeto
[]'s