Olá Edvaldo,
HERANÇA / COMPOSIÇÃO
A herança se dá estendendo atributos e métodos de uma classe. Vamos aos exemplos:
Temos uma classe mãe que se chama Conta e criamos nessa classe alguns atributos e métodos que serão herdados por todas as classes filhas.
public class Conta {
//Os atributos dessa calsse são: saldo, agencia, numero, titular e total
private double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total;
// Os métodos dessa classe são: deposita, saca e transfere
public void deposita(double valor) {
this.saldo = this.saldo + valor;
}
public boolean saca(double valor) {
if (this.saldo >= valor) {
this.saldo = this.saldo - valor;
return true;
} else {
System.out.println("Valor insuficiente");
return false;
}
}
public boolean transfere(double valor, Conta destino) {
if (this.saldo >= valor) {
this.saldo -= valor;
destino.deposita(valor);
return true;
} else {
return false;
}
}
}
Vamos criar uma classe filha de nome Cliente que herda a classe Conta
public class Cliente extends Conta{
private String nome;
private String cpf;
private String profissao;
}
COMPOSIÇÃO
Na composição temos uma instância da classe existente sendo usada como componente da outra classe.
Exemplo de composição:
public class TesteComposicao {
public static void main(String[] args) {
// edvaldo é a instancia ou composição da classe cliente
Cliente edvaldo = new Cliente();
edvaldo.deposita(100);
System.out.println(edvaldo.getSaldo());
}
Abraço