A idéia de herança é simples, mas poderosa. Quando você quer criar uma nova classe e já existe uma classe que inclui algum código que você deseja, é possível derivar sua nova classe da classe existente.
Ao fazer isso, você pode reutilizar os atributos e métodos da classe existente sem ter que escrever (e depurar!)
Uma subclasse herda todos os membros (campos, métodos e classes aninhadas) de sua superclasse.
Os Construtores não são membros, portanto não são herdados por subclasses, mas o construtor da superclasse pode ser invocado a partir da subclasse.
NOTA:Na Programação orientada a objetos a herança é simples: uma classe só pode ter uma super classe. Ou seja não é possível herdar de duas classes ao mesmo tempo em Java!
Neste exemplo temos a classe Pessoa e Motorista. A Classe Motorista tem acesso aos membros da classe “pai” Pessoa. A palavra reservada extends informa que a classe é filha de. A palavra reservada super chama o construtor da classe pai dentro do próprio construtor de classe
É da responsabilidade da subclasse inicializar os atributos definidos na sua classe, assim como os atributos que herda das suas superclasses.
Dado os diagramas de classes abaixo implementar: