Uso de Tipo

Olá,
estou fazendo um jogo de blackjack, tenho a classe Baralho, e a classe JogoDeBlackJack. Eu tentei criar um TipoBaralho, para poder usar outros baralhos, porém os métodos que eram da Classe Baralho, não estão disponíveis. O que eu poderia fazer?

public class Baralho {


	List<Carta> cartas;



	public void crieBaralho() {

		cartas = new ArrayList<Carta>();


		for (Naipe naipe : Naipe.values())

			for (Numero numero : Numero.values())

				cartas.add(new Carta(numero, naipe));



	}


	public void embaralhe() {

		Collections.shuffle(cartas);

	}


	public Carta pegueUmaCartaDoBaralho() {

		return cartas.remove(0);

	}



}


public JogoDeBlackJack(TipoBaralho baralho, Jogador jogador, Dealer dealer) {

		this.baralho = baralho;

		this.jogador = jogador;

		this.dealer = dealer;

	}

Fala ai jooooao td blz??
Acredito que seja essa sua duvida, e proponho a seguinte solução:
A classe TipoBaralho herda a Classe Baralho (assim os metodos de Baralho ficam disponiveis para TipoBaralho)
A classe JogoDeBlackJack é composta das classes TipoBaralho, Jogador e Dealer --> Composição
Para exemplo coloquei a classe Main para ver como chamar os metodos das classes.
Classe Baralho

public class Baralho {

    List<Carta> cartas;

    public void crieBaralho() {

        cartas = new ArrayList<Carta>();

        for (Naipe naipe : Naipe.values()) {
            for (Numero numero : Numero.values()) {
                cartas.add(new Carta(numero, naipe));
            }
        }
    }

    public void embaralhe() {
        Collections.shuffle(cartas);
    }

    public Carta pegueUmaCartaDoBaralho() {
        return cartas.remove(0);
    }
}

Classe TipoBaralho (não sei quais sao os atributo nem métodos mas simulei alguns para melhor entendimento).

public class TipoBaralho extends Baralho{

    private String cor;
    private String gramatura;

//Construtor
    public TipoBaralho() {
    }

//Gets e Sets
    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    public String getGramatura() {
        return gramatura;
    }

    public void setGramatura(String gramatura) {
        this.gramatura = gramatura;
    }

}

Classe JogoDeBlackJack

public class JogoDeBlackJack {
    private TipoBaralho  tipobaralho  ;
    private Jogador jogador;
    private Dealer dealer;

//Construtor
    public JogoDeBlackJack() {
        tipobaralho =new TipoBaralho ();
        jogador=new Jogador();
        dealer=new Dealer();
    }

//Gets e Sets
    public Dealer getDealer() {
        return dealer;
    }

    public void setDealer(Dealer dealer) {
        this.dealer = dealer;
    }

    public Jogador getJogador() {
        return jogador;
    }

    public void setJogador(Jogador jogador) {
        this.jogador = jogador;
    }

    public TipoBaralho getTipobaralho() {
        return tipobaralho;
    }

    public void setTipobaralho(TipoBaralho tipobaralho) {
        this.tipobaralho = tipobaralho;
    }
}

Classe Jogador

public class Jogador {
    private String nome;

//Gets e Sets
    public String getNome() {
        return nome;
    }

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

Classe Main

public class Main {
    public static void main(String[] args) {

        JogoDeBlackJack black = new JogoDeBlackJack();

        black.getTipobaralho().setCor("azul");                  //aqui acesso os metodos da classe TipoBaralho
        black.getTipobaralho().setGramatura("100mm");   //aqui acesso os metodos da classe TipoBaralho

        black.getTipobaralho().crieBaralho(); //aqui acesso os metodos da classe Baralho herdados pela TipoBaralho
        black.getTipobaralho().embaralhe();  //aqui acesso os metodos da classe Baralho herdados pela TipoBaralho

        black.getJogador().setNome("Robervaldo");       //aqui acesso os metodos da classe Jogador
    }
}

Abração :!:
Max