Pessoal, sobre OO e Banco de Dados, eu sempre leio na internet prefira composição em vez de herança, e vários livros de melhores práticas sempre abordam isso, tenha cuidado com herança, herança apenas se um tipo realmente for do outro tipo mesmo, não use herança por preguiça de escrever menos código e tals...
a querida JPA trabalha com Herança "super bem" para o banco de dados, tem algumas abordagens: SINGLETABLE, JOINED, TABLEPERCLASS, ambas com seus prós e contras... lendo o livro de JPA eficaz do Hebert Coelho, e outros materiais não vi vantagem de usar Herança para o Banco de Dados, mas para o Java achei bom, pra reaproveitar alguma coisa... e seguir os conceitos de OO.
Nos projetos de vocês se vcs tem lá o caso clássico: Animal -> Cachorro, Gato, Pássaro, e tivessem q mapear essas classes usariam Herança para o banco de dados, ou usaria composição e descartaria o uso de herança, como vcs lidam com isso em Projetos OO com Java e Mysql por exemplo.