引用:
|
作者mor8
請問一下
為什麼很多人都說vb6不是物件導向的程式
|
http://tw.knowledge.yahoo.com/quest...d=1004122904022
根據 Brad Cox 於 1980 年所發表文獻中指出,所謂的物件導向應該具備下列的特性:
1. 物件(Object) 以及訊息(Message)
2. 繼承(Inheritance)。
3. 封裝(Encapsulation)。
4. 動態連結(Dynamic Binding)
而其中繼承、封裝、動態連結則又是物件導向中,最重要也具盛名的特性,所以很多人都據此來評斷,哪種語言或工具是不是支援 OO,特別是我們可以在一些論壇之中,常常可以見到諸如這樣的評語:『VB 不支援類別(Class)的繼承概念,同時也不支援資訊封裝的方法,所以 VB 不是一個 OO 程式語言』、『Java 由於不支援指標型態,因此更能徹底封裝類別的資訊,跟 C++ 比較起來更能貼近 OO 的精神』然而對於這些評語,筆者姑且不討論他們之間的對錯,只是覺得發表這些評論的人,把上述 OO 的特性,當作是個『定理』來遵從了,所以才造成論壇中的烽煙四起、口水肆溢的現象出現。其實,事實上在各家程式語言之中,對於 OO 支援的程度都不一致,特別是連號稱 OO 的先驅 C++ 都是如此,所以如果我們硬是以某一種語言作為標準,來評斷其他語言作法上並不公平。因此筆者根據 Brad Cox 所公布的 OO 特性,在此大膽的進行一項假設,『凡是支援繼承、封裝、動態連結的程式語言或工具,我們可以說它們是支援 OO 的,反之則亦然』。