面向對象技術的三大機制

字號:

封裝、繼承、多態(tài)是面向對象技術的三大機制,其中封裝是基礎,繼承是關鍵,多態(tài)是延伸。
    1.封裝
    封裝的對象是數(shù)據(jù)和方法,支持數(shù)據(jù)封裝就是支持數(shù)據(jù)抽象。在c++中,類是支持數(shù)據(jù)封裝的工具,對象則是數(shù)據(jù)封裝的實現(xiàn)。沒有封裝,就沒有面向對象技術。
    另外,封裝還提供一種對數(shù)據(jù)訪問嚴格控制的機制。因此,數(shù)據(jù)將被隱藏在封裝體中,該封裝體通過操作接口與外界交換信息。
    對象被說明為給定類的量。每個給定類的對象包含有這個類所規(guī)定的若干個私有成員和公有成員以及保護成員。
    在C語言中可以定義結構,但這種結構只包含數(shù)據(jù),而不包含函數(shù)。C++中的類是數(shù)據(jù)和函數(shù)的封裝體。在C++中,結構可作為一種特殊的類,它雖然可以包含函數(shù),但是它沒有私有或保護的成員。
    2.繼承
    類提供了說明一組對象結構的機制。借助于繼承這一重要機制,已存在的類具有建立子類的能力,進而建立類的層次,擴充類的定義。
    繼承提供了創(chuàng)建新類的一種方法,一個新類可以通過對已有類進行修改和擴充來定義。從一個類繼承定義的新類,將繼承已有類的方法和屬性,并且可添加不包含在父類中的新方法和屬性。新類被稱為已有類的子類,又稱為派生類,已有類稱為新類的父類,又稱為基類。
    C++中允許單繼承和多繼承,一個類可以根據(jù)需要生成派生類。
    通過繼承,實現(xiàn)代碼重用,減少代碼冗余,簡化接口和界面。
    3.多態(tài)
    多態(tài)是指相同的語法結構可以代表不同類型的實體或者對不同類型的實體進行操作,即發(fā)出同樣的消息被不同對象接收時導致完全不同的行為。
    c++允許函數(shù)名和運算符重載,允許一個相同的標識符或運算符代表多個不同實現(xiàn)的函數(shù),這是編譯時的多態(tài)性。
    C++中可以定義虛函數(shù),通過定義虛函數(shù)來支持動態(tài)聯(lián)編。動態(tài)聯(lián)編是另一類重要的多態(tài)性,多態(tài)性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每一個子類可接收一個或多個具有相同名字的消息。當一個消息被這個樹中一個類的一個對象接收時,這個對象動態(tài)地決定給子子類對象的消息的某種用法。這是執(zhí)行時的多態(tài)性。