\b;Palavra-chave \c;extends\n;
Esta palavra-chave é usada na definição de \c;\l;classe\u cbot\class;\n; quando queremos que uma classe herde membros de outra classe. A classe que é extendida nós geralmente chamamos de pai ou base, a quase que extendeu nós chamamos de filha.

\t;Exemplo
\c;
\s;public class Pai
\s;{
\s;	void ola()
\s;	{
\s;		message("Olá!");
\s;	}
\s;}
\s;
\s;public class Filho extends Pai
\s;{
\s;	void oi()
\s;	{
\s;		message("Oi!");
\s;	}
\s;}
\s;
\s;extern void object::Teste()
\s;{
\s;	Filho filho = new Filho();
\s;	filho.ola(); // Irá exibir "Ola!"
\s;	filho.oi(); // Irá exibir "Oi!"
\s;}
\n;

\b;Membros herdados
Somente membros \c;\l;public\u cbot\public;\n; e \c;\l;protected\u cbot\protected;\n; são herdados. Membros \c;\l;private\u cbot\private;\n; são inacessíveis até para os filhos, apesar de poder serem acessados indiretamente através de métodos herdados.

Construtores e destrutores não são herdados, entretanto, eles podem ser sobrescritos.

\b;Sobrescrevendo métodos
Métodos herdados podem ser sobrescritos (redefinidos) na definição de classe dos filhos. Exemplo:
\c;
\s;public class Pai
\s;{
\s;	void ola()
\s;	{
\s;		message("Olá!");
\s;	}
\s;}
\s;
\s;public class Filho extends Pai
\s;{
\s;	void ola()
\s;	{
\s;		message("Hello!");
\s;	}
\s;}
\s;
\s;extern void object::Teste()
\s;{
\s;	Filho filho = new Filho();
\s;	filho.ola(); // Irá exibir "Hello!"
\s;}
\n;
Um método do pai pode ser chamado dentro de um método sobrescrito usando a palavra-chave  \c;\l;super\u cbot\super;\n;.

\b;Polimorfismo
Uma \c;\l;referência\u cbot\pointer;\n; do tipo Pai pode apontar para um objeto do tipo Filho, entretanto, esta referência não pode ser usada para acessar um membro do filho. A fim de acessar um membro do filho, deve ser assegurado que o referência do Pai realmente aponta para um objeto Filho. Neste caso, ele pode ser copiado com segurança para uma referência do tipo Filho, o qual terá acesso aos membros do filho.

\t;Exemplo
\c;
\s;public class Pai
\s;{
\s;	void ola()
\s;	{
\s;		message("Olá!");
\s;	}
\s;}
\s;
\s;public class Filho extends Pai
\s;{
\s;	void ola()
\s;	{
\s;		message("Hello!");
\s;	}
\s;	void oi()
\s;	{
\s;		message("Oi!");
\s;	}
\s;}
\s;
\s;extern void object::Teste()
\s;{
\s;	Pai pessoas[2];
\s;	pessoas[0] = new Pai();
\s;	tpessoas[1] = new Filho();
\s;	for (int i = 0; i < 2; ++i)
\s;	{
\s;		pessoas[i].ola();
\s;	}
\s;	//pessoas[1].oi(); // Erro
\s;	Filho filho = pessoas[1];
\s;	filho.oi(); // OK
\s;}
\n;

\b;Herança múltipla
Uma criança não pode ter múltiplos pais, porém, um pai pode ter múltiplas crianças.

\t;Veja também
\c;\l;class\u cbot\class;\n;, \c;\l;public\u cbot\public;\n;, \c;\l;private\u cbot\private;\n;, \c;\l;protected\u cbot\protected;\n;, \c;\l;new\u cbot\new;\n;, \c;\l;referência\u cbot\pointer;\n;, \c;\l;this\u cbot\this;\n;, \c;\l;super\u cbot\super;\n;
\l;Programação\u cbot;, \l;tipos\u cbot\type; e \l;categorias\u cbot\category;.
