[原創]介面、類、抽象類、物件的另類解釋

銀河使者發表於2008-03-23
大家也許都知道做工藝器或是工廠裡做生產某些產品的模具模具。如做一個金屬的五角星,只要將鋼水罐到五角星的模具模具裡就可以很容易地製做五角星。

我們也可以將類比喻成做五角星的模具。  而生產出的一個個五角星就是一個個物件。 為了建立不同的物件(有的是金屬的、有的塑料的,等等),可通過向模具裡灌入不同的液態材料就可以製做。這也相當於向類的構造方法中傳入不同的引數(相當於不同的液態材料)。

還有就是介面,如果說類是物件的抽象,那麼介面就是類的抽象。
我們也可以將介面看成是製做這個五角星模具的規格列表(相當於介面中的抽象方法)。也就是說,只有這個模具(類)符合(實現)相應的規格(介面),才會成為製做五角星的模具模具。

哈哈,當然,這個使用模具生成五角星及其他產品的工廠可以看成是物件工廠。

class ObjectFactory
{
    public static 五解星 create五角星() {}
   
    public static 圓 create圓() {}

      public static 橢圓 create橢圓() {}
   ... ...
}


也就是說,類和介面都不是實際的產品,都不能拿來用,類相當於模具(沒人會拿模具模具在商店裡賣吧,估計只有物件工廠會買),而介面只相當於製做模具的規格列表,如尺寸、角度等。而這些規格列表的內容需要在具體類中實現才可能成為具體的模具,如長度和寬度,如果在類中實現為長度等於寬度,那麼這個類就成為一個成方形的模具,如果長度不等於寬度,就是一個長方形的模具。然後再例項化這個模具(類),就生成出一個個正方形或長方形物件。


在物件導向理論中還有一個抽象類,這個抽象類其實就相當於一個半成品的模具。如只實現在長度和寬度(相當於在抽象類中已實現的方法),並沒有實現深度(這個深度相當於抽象類中的抽象方法,這個抽象方法需要在抽象類的子類中實現)。所以這個模具就是半成品了。因此,是無法直接拿半成品的模具(抽象類)去生產(例項化)產品(物件)的。

[ 本帖最後由 銀河使者 於 2008-3-23 09:42 編輯 ]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12921506/viewspace-216959/,如需轉載,請註明出處,否則將追究法律責任。

相關文章