•
Herança
C++ Oferece 3 especies de herança, - public, protected e private.
Teremos classes base que fornece atributos e comportamentos
para outras classes
e
Teremos classes derivadas que herda atributos e comportamentos.
Os membros public de uma classe podem ser acessados por
todas as funções
do programa.
Os membros private de uma classe só podem ser acessados pelas funções
da classe ou por funções friends.
- Apresentamos o acesso protected como um nível de
proteção
intermediário entre o acesso public e o acesso
private.
Protected pode ser acessado por membros da classe e funções
friends mais também por membros de classes e
funções friends de classes derivadas.
Ele não pode ser acessado
diretamente por objetos como privates da vida.
OBS: Membros protected ROMPE o encapsulamento. Logo,
se você mexer
nela na classe base, terá que mexer nas classes
derivadas também.
A Herança em C++ é feita da seguinte forma:
class Nome_da_Classe_Filha : public Nome_da_classe_Pai {
...
}
O : public significa em C++ o tipo de herança!
Uma classe derivada não pode acessar diretamente
membros private de sua classe base;
Ao derivar uma classe base, a classe base pode ser derivada
como public, protected ou private.
Ao derivar a partir de protected , os membros public e protected da classe base
tornam-se membros
protected da classe derivada.
Se private, metodos public e protected são
transformados em private
na classe base..
Privates nunca são extendiveis.
Sobreescrevendo membros da classe base em uma classe
derivada
Em C++ existe sobrecarga e sobreescrita de função.
Quando vc muda os parametros da função, vc está sobrecarregando
e quando vc está fazendo a mesma função da classe base vc
está sobreescrevendo a função.
A função sobreescrita da classe base não será mais
executada.
Mais vc pode chamar ela usando o nome da classe base da seguinte forma
PAI::função();
Se vc se esquecer dos dois pontos em uma função sobreescrita,
vc está ferrado
por que isso se resultará em uma função recursiva infinita.
|