herança/composição

alguem pode me dizer a diferença e se possível um pequeno exemplo de herança e composição???

vlw

bom, pode-se dizer que os dois servem para reutilizar alguma funcionalidade.

A composição estende uma classe pela delegação de trabalho para outro objeto. a herança estende atributos e métodos de uma classe

Use composição para estender as responsabilidades pela delegação de trabalho a outros objetos

Na composição:

Um exemplo :

  • Uma empresa tem um endereço (Uma empresa “tem” um endereço)

Na Herança:
Atributos, conexões a objetos e métodos comuns vão na superclasse. Adicionamos mais dessas coisas nas subclasses

Não sei se ajudou…qualquer coisa, dá o “grito” rsr

t+

Entenda apenas isso:

Herança: É UM, ex: você é um ser humano, pois herdou caracteristicas desta raça
Composição: TEM UM, ex: você tem um cérebro e isso é necessário para ser um humano
Agregação: Você usa roupas, porém, poderia viver sem usa-las.

outro exemplo:
herança: Cavalo É-UM animal.
composição um Cavalo TEM-UMA(tem-um) Rédia.

:smiley:

O q eu entendi foi mais ou menos assim (me corrijam se estou errado):

herança: herda os atributos de uma classe
ex:

Na classe pessoa eu coloco alguns atributos (nome, idade, endereço);
Na classe aluno eu chamo os atributos (extends) da classe pessoa (super) e incluo mais atributos que eu quiser.

composição: torna uma classe um atributo de outra classe
ex: ???

composição não to conseguindi entender!!

Aproveitando o exemplo do LPJava.

public class Animal{
   public String nome;

   public String getNome(){
      return this.nome;
   }

   public void setNome(String nome){
      this.nome = nome;
   }
}

//Aqui Cavalo É-UM (herança) Animal, então ele herda tanto o atributo nome quanto os métodos getNome e setNome da classe Animal.
//Além disso, ele TEM-UMA (composição) Redia

public class Cavalo extends Animal{
   public Redia redia;
}

public class Redia{
   public String cor;
   public int tamanho;

   //métodos get e set...
}

em java a Herança pode ser da seguinte maneira:

public class Desenha_Janela extends JFrame
{
public Desenha_Janela()
{
/No codigo abaixo Desenha_Janela esta herdando toda a estrutura do Frame, ai não é necessario ficar escrevendo D esenha_Janela.setTitle(…); Desenha_Janela.setSize(…); e ai por diantee…/

          this.setTitle("Exemplo de Herança");
          this.setSize(300,300);
          this.setVisible(true);
     }

   public static void main()
   {
         new Desenha_Janela();
    }

}
Qualquer duvida posta ae !
Abraços!

babyJava dar uma lida aqui:

http://www.guj.com.br/posts/list/50115.java

isto tem alguma coisa a ver com o topico postado ?
Abraços

isto tem alguma coisa a ver com o topico postado ?
Abraços

[quote=babyJava]isto tem alguma coisa a ver com o topico postado ?
Abraços[/quote]

com o Tópico não, com seu post sim!

Então voces estão querendo dizer que

Herança : É uma forma possivel de estruturar o seu codigo, que é utilizada através de um comando
chamado extends

Composição : é uma forma, um nome, para quando voce inclui algo a mais(atributo) na classe que voce herdeu,
é meio que um pattern??

Excelente post sobre isso:

http://www.guj.com.br/posts/list/2542.java

E ja que sua duvida é mais sobre compsição aqui:

http://www.guj.com.br/posts/list/37073.java