Вы находитесь на странице: 1из 2

Exemplo de herana.

Usaremos C++ para exemplificar o uso de Herana entre 2 classes. Para nosso exemplo criei as classes Ave e Pato, sendo que a classe Pato uma classe derivada da classe Ave. A seguir a definio da classe Ave: //Casse Base AVE class Ave { private: //atributos do tipo private (encapsulamento) string cor; public: //construtores, com e sem parmetros Ave(); Ave(string); //metodos para dar comportamento a ave void andar(); void voar(); void cantar(); //metodos para acessar o valor da cor string getCor(); void setCor(string); }; Os mtodos da classe Ave sero andar, voar e cantar. A classe Pato ter um comportamento a mais, que ser nadar, porm, a classe Pato tambm dever ter os comportamentos de andar, voar e cantar, da mesma forma que a classe Ave. Para no termos que reescrever o cdigo a classe Ave na classe Pato, podemos usar a Herana, conforme segue: class Pato : public Ave { public: //construtores, com e sem parmetros Pato(); Pato(string); //metodos para dar comportamento extra a classe Pato void nadar(); }; A parte : public Ave {, da primeira linha da classe Pato, diz que ela herda da classe Ave. Pronto, agora com um objeto da classe Pato, podemos usar os mtodos da classe Ave sem termos

que escrever nenhum cdigo para isso na classe Pato. Cono no exemplo a seguir: int main(int argc, char *argv[]) { Pato umPatoQualquer; cout << "construtor sem parametro" << endl; umPatoQualquer.andar(); umPatoQualquer.voar(); umPatoQualquer.cantar(); umPatoQualquer.nadar(); return 0; } O resultado exibido ser: construtor sem parametro Ave Cor Generica Andando Ave Cor Generica Voando Ave Cor Generica Cantando Pato Cor Generica NADANDO Notem que a cor ficou como Cor Generica porque foi usado o construtor sem parmtro. Para usarmos o construtor com parmetro ser preciso instanciar o objeto como segue: int main(int argc, char *argv[]) { Pato umPatoQualquer; cout << "construtor sem parametro" << endl; umPatoQualquer.andar(); umPatoQualquer.voar(); umPatoQualquer.cantar(); umPatoQualquer.nadar(); cout << endl << "construtor com parametro" << endl; //nesse caso vamos usar o new para criar o objeto. Pato * outroPatoQualquer = new Pato("Verde"); // e depois usar a -> para acessar os metodos outroPatoQualquer->andar(); outroPatoQualquer->voar(); outroPatoQualquer->cantar(); outroPatoQualquer->nadar(); return 0; }

Вам также может понравиться