Camilo, você está fazendo confusão.
As relações sempre ocorre entre DUAS classes. Nesse caso, onde está a sua relação tem um?
Cavalo TEM UMA Rédia.
Rédia é um atributo do cavalo, não uma superclasse. Portanto, a relação é do tipo TEM UM.
E a relação é um?
Cavalo É UM Animal.
Animal é superclasse de cavalo. Portanto, todo cavalo é um animal.
O fato de você fazer r = new Redia() simplemente diz a r qual a rédia que o Cavalo tem.
O que o colega falou é verdade, você sempre tem que instanciar um objeto da classe antes de usa-la. Se você não estanciar você está dizendo:
“Este cavalo pode ter uma rédia, mas ainda não sei quem é ela.”
Por isso quando você tenta obter o tamanho o java reclama com um NullPointerException. É como se ele te dissesse:
“Ei, se você não sabe qual é a rédea do cavalo, como você quer que eu diga qual o tamanho dela?”