Herança e derivação
Se você ouvir esse nome pela primeira vez, primeiro pense no significado dessas duas palavras. Vamos falar primeiro sobre herança. Isto é semelhante ao significado de herança na vida real. Por exemplo, uma pessoa herda a propriedade de outra pessoa e um filho herda a herança de seu pai. Da mesma forma, em C++, por exemplo, se houver duas classes, a nova classe terá todos os atributos da classe original, o que é chamado de herança ! O processo de geração de uma nova classe a partir de uma classe original é chamado de derivação ! E chamamos a classe original de classe pai ou classe base , e a classe derivada da classe base é chamada de classe derivada ou subclasse . Todos podem identificar seu relacionamento pelos nomes.
Então, quais são os benefícios da herança e da derivação? Por que o C++ possui esse mecanismo?
1. Refletir ideias de programação orientada a objetos e expressar melhor a relação entre vários tipos.
2. Além de herdar todas as informações da classe base, a classe derivada também pode adicionar suas próprias informações diferentes e diferenciadas. Assim como o princípio da evolução biológica, a classe derivada será atualizada com base em todas as informações da classe base. classe básica.
3. Os membros herdados da classe derivada para a classe base são de propriedade automática e oculta, ou seja, não precisamos redefini-los. Isso economiza muito código e incorpora a ideia de engenharia de software de reutilização de código.
A seguir, vamos dar uma olhada na implementação do código real, como herdar e implementar classes derivadas:
/************************************//Des: demonstração do tutorial C++//Autor: Huang/ /Direitos autorais:www.dotcpp.com//Data:2018/6/20********************************* * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:intSetTime(inth,intm,ints){this->H=h;this->M=m ; this->S=s;return0;}intShowTime(){cout<<Now:<<H<<:<<M<<:<<S<<endl;return0;}};classAlarmClock:publicClock{privado: intAH ;intAM;public:intSetAlarm(intAH,intAM){this->AH=AH;this->AM=AM;return0;}intShowAlarm(){cout<<Hora do alarme:<<AH<<:<<AM<< endl ;return0;}};intmain(){AlarmClockA;A.SetTime(19,15,50);A.ShowTime();A.SetAlarm(5,30);A.ShowAlarm();return0;}
A captura de tela em execução é a seguinte:
Leia e entenda o código. Clock é a classe base e AlarmClock é a classe derivada. Preste atenção à instrução que define a classe derivada:
classAlarmClock:publicClock
A herança é representada por dois pontos , onde public representa a herança pública, a herança privada e a herança protegida, que expandiremos mais tarde. No código, definimos o objeto A da classe derivada AlarmClock na função principal e então podemos chamar os métodos SetTime e ShowTime da classe base e usá-los da mesma forma que os nossos. Ao mesmo tempo, adicionamos e definimos nossos próprios métodos SetAlarm e ShowAlarm na classe derivada. Por favor, entenda o código e experimente no computador.
Até agora, apresentamos os conceitos básicos de herança e derivação. Depois de entender isso, você precisa experimentar a codificação em um computador para entender em que circunstâncias duas classes que têm pontos em comum e estão relacionadas podem ter esse tipo de relacionamento e avaliar seus relacionamentos. usar.