Hola a todos, tengo un problema con un programa Java y no sé como resolverlo:
¿Cómo puedo crear un objeto, uno de cuyos atributos es un ArrayList formado por otros objetos?. Me explico:
En mi programa tengo las siguientes clases:

import java.io.*;
import java.util.*;
public class Caracter extends Elemento implements java.io.Serializable {
int valor;
int posicion;
public Caracter (int valor, int posicion) {
this.valor=valor;
this.posicion=posicion;}
}



import java.io.*;
import java.util.*;
public class Palabra extends ElementoCompuesto {
ArrayList<Caracter> contenidoPalabra;

// Constructor parametrizado
public Palabra (int id, int posIni, int posFin, ArrayList<Caracter>
contenidoPalabra) {
super(id, posIni, posFin); // con esto se invocan los constructores de la clase ElementoCompuesto
this.contenidoPalabra=contenidoPalabra;}
}



import java.io.*;
import java.util.*;
public class Frase extends ElementoCompuesto {
ArrayList<Palabra> contenidoFrase;

// Constructor parametrizado
public Frase(int id, int posIni, int posFin, ArrayList<Palabra> contenidoFrase) {
super(id, posIni, posFin);
this.contenidoFrase= contenidoFrase; }
}

En el prog principal hago:

ArrayList<ElementoBasico> palabraAux=new ArrayList<ElementoBasico>();
ArrayList<Palabra> fraseAux=new ArrayList<Palabra>();
.
.
palabraAux.add(palabra) //voy añadiendo objetos clase Palabra, y cuando está formada una palabra hago:
Frase frase=new Frase(id,posIni,posFin,palabraAux);

Cuando llamo a un método imprimirFrase de la clase Frase para visulizar el objeto formado (frase), ha formado un ArrayList de "x"elementos pero sin contenido. Los atributos enteros los visualiza sin ningún problema.

¿Qué estoy haciendo mal? Muchas gracias