1.類(lèi)型兼容性原則

  在上一節(jié)的C++中的繼承中介紹了什么是類(lèi)型兼容性原則。所謂的類(lèi)型兼容性原則是指子類(lèi)公有繼承自父類(lèi)時(shí),包含了父類(lèi)的所有屬性和方法,因此父類(lèi)所能完成的功能,使用子類(lèi)也可以替代完成,子類(lèi)是一種特殊的父類(lèi)。所以可以使用子類(lèi)對(duì)象初始化父類(lèi)對(duì)象,可以用父類(lèi)指針指向子類(lèi)對(duì)象,可以用父類(lèi)引用來(lái)引用子類(lèi)對(duì)象。

2.函數(shù)的重寫(xiě)

  函數(shù)的發(fā)生在類(lèi)的繼承過(guò)程中,所謂的函數(shù)的重寫(xiě)是指在繼承中,子類(lèi)定義了與父類(lèi)函數(shù)原型相同的函數(shù),即定義了和父類(lèi)中一樣的函數(shù)。

3.類(lèi)型兼容性原則遇上函數(shù)的重寫(xiě)

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

# include<iostream>using namespace std;/* 定義父類(lèi) */class Parent
{public:    /* 定義print函數(shù) */
    void print()
    {
        cout << "Parent print()函數(shù)" << endl;
    }
};/* 定義子類(lèi)繼承自父類(lèi),并重寫(xiě)父類(lèi)的print函數(shù) */class Child :public Parent
{public:    /* 重寫(xiě)父類(lèi)的print函數(shù) */
    void print()
    {
        cout << "Child print()函數(shù)" << endl;
    }
};int main()
{
    Child c;    /* 調(diào)用子類(lèi)對(duì)象的print函數(shù),打印子類(lèi)的print函數(shù) */
    c.print();    /* 通過(guò)使用作用域操作符調(diào)用父類(lèi)的print函數(shù),打印父類(lèi)的print函數(shù) */
    c.Parent::print();    /* 當(dāng)我們使用類(lèi)型兼容性原則的時(shí)候,發(fā)現(xiàn)調(diào)用的函數(shù)是父類(lèi)的print函數(shù),這是符合編譯器規(guī)則的 */
    Parent p1 = c;
    p1.print();

    Parent *