浅谈c++继承、多态及继承与多态的区别

来源:互联网 发布:基因大数据 编辑:程序博客网 时间:2024/06/05 10:29

继承:类与类之间可以共用代码,实现代码重用。

基类:被继承的类,即父亲类。

派生类:继承的类,拿来主义类,即儿子类。

继承方式:

private:私有继承

基类private成员 不能继承
基类public、protected成员,可以继承,在派生类中相当于是private访问

public:公有继承:
基类private成员 不能继承
基类public成员,可以继承,在派生类中相当于是public访问
基类protected成员,可以继承,在派生类中相当于是protected访问

protected:保护继承:
基类private成员 不能继承
基类public成员,可以继承,在派生类中相当于是protected访问
基类protected成员,可以继承,在派生类中相当于是protected访问

多态:面向对象过程中,基类与派生类存在相同的方法,但是有不同的方法体,调用是根据对象有选择的调用合适的方法。

多态的三个条件:

1.必须是公有继承
2.必须是通过基类的指针或引用 指向派生类对象 访问派生类方法
3.基类的方法必须是虚函数

区别:

1.多态的实现要求必须是共有继承。

2.在继承关系中,父类更通用,子类更具体。父类具有一般的特征和行为,子类除了具有父类的特征和行为,还有自己特殊的行为和特征。

继承关系中,并不要求基类方法一定是虚函数。多态要求基类方法必须是虚函数。

3.多态:子类重写父类的方法,使得子类具有不同的实现。且运行时,根据实际创建的对象动态决定使用哪个方法。