[原創]介面、類、抽象類、物件的另類解釋
大家也許都知道做工藝器或是工廠裡做生產某些產品的模具模具。如做一個金屬的五角星,只要將鋼水罐到五角星的模具模具裡就可以很容易地製做五角星。
我們也可以將類比喻成做五角星的模具。 而生產出的一個個五角星就是一個個物件。 為了建立不同的物件(有的是金屬的、有的塑料的,等等),可通過向模具裡灌入不同的液態材料就可以製做。這也相當於向類的構造方法中傳入不同的引數(相當於不同的液態材料)。
還有就是介面,如果說類是物件的抽象,那麼介面就是類的抽象。
我們也可以將介面看成是製做這個五角星模具的規格列表(相當於介面中的抽象方法)。也就是說,只有這個模具(類)符合(實現)相應的規格(介面),才會成為製做五角星的模具模具。
哈哈,當然,這個使用模具生成五角星及其他產品的工廠可以看成是物件工廠。
class ObjectFactory
{
public static 五解星 create五角星() {}
public static 圓 create圓() {}
public static 橢圓 create橢圓() {}
... ...
}
也就是說,類和介面都不是實際的產品,都不能拿來用,類相當於模具(沒人會拿模具模具在商店裡賣吧,估計只有物件工廠會買),而介面只相當於製做模具的規格列表,如尺寸、角度等。而這些規格列表的內容需要在具體類中實現才可能成為具體的模具,如長度和寬度,如果在類中實現為長度等於寬度,那麼這個類就成為一個成方形的模具,如果長度不等於寬度,就是一個長方形的模具。然後再例項化這個模具(類),就生成出一個個正方形或長方形物件。
在物件導向理論中還有一個抽象類,這個抽象類其實就相當於一個半成品的模具。如只實現在長度和寬度(相當於在抽象類中已實現的方法),並沒有實現深度(這個深度相當於抽象類中的抽象方法,這個抽象方法需要在抽象類的子類中實現)。所以這個模具就是半成品了。因此,是無法直接拿半成品的模具(抽象類)去生產(例項化)產品(物件)的。
[ 本帖最後由 銀河使者 於 2008-3-23 09:42 編輯 ]
我們也可以將類比喻成做五角星的模具。 而生產出的一個個五角星就是一個個物件。 為了建立不同的物件(有的是金屬的、有的塑料的,等等),可通過向模具裡灌入不同的液態材料就可以製做。這也相當於向類的構造方法中傳入不同的引數(相當於不同的液態材料)。
還有就是介面,如果說類是物件的抽象,那麼介面就是類的抽象。
我們也可以將介面看成是製做這個五角星模具的規格列表(相當於介面中的抽象方法)。也就是說,只有這個模具(類)符合(實現)相應的規格(介面),才會成為製做五角星的模具模具。
哈哈,當然,這個使用模具生成五角星及其他產品的工廠可以看成是物件工廠。
class ObjectFactory
{
public static 五解星 create五角星() {}
public static 圓 create圓() {}
public static 橢圓 create橢圓() {}
... ...
}
也就是說,類和介面都不是實際的產品,都不能拿來用,類相當於模具(沒人會拿模具模具在商店裡賣吧,估計只有物件工廠會買),而介面只相當於製做模具的規格列表,如尺寸、角度等。而這些規格列表的內容需要在具體類中實現才可能成為具體的模具,如長度和寬度,如果在類中實現為長度等於寬度,那麼這個類就成為一個成方形的模具,如果長度不等於寬度,就是一個長方形的模具。然後再例項化這個模具(類),就生成出一個個正方形或長方形物件。
在物件導向理論中還有一個抽象類,這個抽象類其實就相當於一個半成品的模具。如只實現在長度和寬度(相當於在抽象類中已實現的方法),並沒有實現深度(這個深度相當於抽象類中的抽象方法,這個抽象方法需要在抽象類的子類中實現)。所以這個模具就是半成品了。因此,是無法直接拿半成品的模具(抽象類)去生產(例項化)產品(物件)的。
[ 本帖最後由 銀河使者 於 2008-3-23 09:42 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12921506/viewspace-216959/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 抽象類及介面詳解抽象
- Java的抽象類 & 介面Java抽象
- 抽象類與介面抽象
- 抽象類VS介面抽象
- 介面與抽象類抽象
- 介面和抽象類抽象
- 抽象類和介面抽象
- Java 的抽象類, 介面以及內部類Java抽象
- PHP物件和介面抽象類注意事項PHP物件抽象
- 介面、抽象類、普通類之間的關係抽象
- 物件導向-抽象類物件抽象
- Java中的介面與抽象類詳解Java抽象
- 介面和抽象類 (abstract)抽象
- 抽象類和介面,你瞭解多少?抽象
- 關於Java中的物件、類、抽象類、介面、繼承之間的聯絡Java物件抽象繼承
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- Java中的介面與抽象類設計原則Java抽象
- java中的抽象類與介面Java抽象
- Java的抽象類與介面理解Java抽象
- 介面和抽象類的區別抽象
- java抽象類與介面的詳細詮釋Java抽象
- JAVA物件導向--抽象類Java物件抽象
- java中抽象類和介面Java抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- 介面的行為抽象和抽象類的行為抽象抽象
- pb通過類名稱動態構建類物件(原創)物件
- Java抽象(方法,類)和Java的介面Java抽象
- 物件導向基礎(2)--抽象類 介面 集合 泛型物件抽象泛型
- Java總結-抽象類與介面Java抽象
- Java基礎-抽象類和介面Java抽象
- 抽象類和介面的區別抽象
- JAVA介面繼承、抽象類等Java繼承抽象
- 抽象類與介面的區別抽象
- Java抽象類和介面 小白版Java抽象
- 抽象類抽象
- java 設計模式6原則 介面,抽象類區別Java設計模式抽象
- 解決 "Script Error" 的另類思路Error
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象