京華大學計算機係大二年級大教室,一個老師正在給學生講授《麵向對象程序設計》的課程。
“對象具有以下的主要特特征:
一是唯一性。每個對象都有自身唯一的標識,通過這種標識,可找到相應的對象。在對象的整個生命期中,它的標識都不改變,不同的對象不能有相同的標識。
二是抽象性。抽象性是指將具有一致的數據結構(或者說是屬性)和行為(或者說是操作)的對象抽象成類。一個類就是這樣一種抽象,它反映了與應用有關的重要性質,而忽略其他一些無關內容。任何類的劃分都是主觀的,但必須與具體的應用有關。
三是繼承性。繼承性是子類自動共享父類數據結構和方法的機製,這是類之間的一種關係。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並加入若幹新的內容。
繼承性是麵向對象程序設計語言不同於其它語言的最重要的特點,是其他語言所沒有的。
在類層次中,子類隻繼承一個父類的數據結構和方法,則稱為單重繼承。
在類層次中,子類繼承了多個父類的數據結構和方法,則稱為多重繼承。
多重繼承,JAVA、VB、NET、Objective-C均僅支持單繼承,注意在C++多重繼承時,需小心二義性。
在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重用性。
采用繼承性,提供了類的規範的等級結構。通過類的繼承關係,使公共的特性能夠共享,提高了軟件的重用性。
四是多態性(也可以表述為多形性)。多態性是指相同的操作或函數、過程可作用於多種類型的對象上並獲得不同的結果。不同的對象,收到同一消息可以產生不同的結果,這種現象稱為多態性。
多態性允許每個對象以適合自身的方式去響應共同的消息。
多態性增強了軟件的靈活性和重用性。
……”
章岩和黃華山、李慶豐、賀俊明等人坐在一起上課,那低沉枯燥的聲音令到他們都昏昏欲睡。
“這樣照本宣科讀教材,倒不如自己回宿舍看書、做練習或者上機編程。”後麵那排座椅上有一位同學低聲說。
周邊立即響起一片附和、揶揄的聲音。
“是啊,這樣的講課枯燥無味、催人睡眠。”
“這樣的老師誰不會做?根本不用備課,我去講都比他好。”
“教師不是傳道、授業、釋疑、解惑的嗎?怎麼變成了讀書先生?”
甚至後麵的座位上陸續有人開始離開。
“我們是不是也幹脆回去上機編程算了?”李慶豐低聲問章岩、黃華山等人。
“走吧,這樣的催眠課不聽也罷,白白浪費時間。”黃華山小聲地說,隨後站起來,從大課室後門離開。
李慶豐、賀俊明也跟著從後門離開了大課室。章岩也隻好悄悄跟在他們後麵離開。