O Vini Godoy deu um exemplo perfeito!
Se colocar alguns métodos na classe fica mais fácil de entender:
class Mamifero {
protected Mamaria mamaria;
public void amamentar(){};
public void mover(){};
}
public class Cachorro extends Mamifero {
public void darAPata(){};
public void latir(){};
}
Dessa forma pense que todo cachorro pode amamentar e mover, mas nem todo Mamífero pode latir ou darAPata.
Você poderia também ter uma classe Vaca (extends Mamifero), que seria um mamífero e poderia amamentar() e mover().
Isso te permite coisas do tipo:
Mamifero m = new Cachorro();
m.amamentar();
No Livro Use a cabeça Java, da Kathy Sierra, tem algusn exemplos interessantes sobre esses conceitos básicos. Aconselho qualquer iniciante em Java a lê-lo, trata apenas, como já disse, dos conceitos básicos, mas de uma forma muito didática, vc aprende até sem querer, heehee