Can you summarize the following document?
        
  在現實世界中,經常有屬於同一個類的物件。例如,某輛自行車只是世界上很多自行車中的一輛。在物件導向軟體中,也有很多共享相同特徵的不同的物件:矩形、僱用記錄、視訊剪輯等。可以利用這些物件的相同特徵為它們建立一個藍圖。物件的軟體藍圖稱為類。  類別是定義同一類所有物件的變數和方法的藍圖或原型。例如,可以建立一個定義包含當前檔位等例項變數的自行車類別。這個類別也定義和提供了例項方法(變檔、剎車)的實現。  例項變數的值由類別的每個例項提供。因此,當建立自行車類別以後,必須在使用之前對它進行例項化。當建立類的例項時,就建立了這種型別的一個物件,然後系統為類別定義的例項變數分配記憶體。然後可以呼叫物件的例項方法實現一些功能。相同類別的例項共享相同的例項方法。  除了例項變數和方法,類別也可以定義類變數和類方法。可以從類別的例項中或者直接從類別中訪問類變數和方法。類方法只能操作類變數 - 不必訪問例項變數或例項方法。  系統在第一次在程式中遇到一個類時為這個類建立它的所有類變數的拷貝 - 這個類的所有例項共享它的類變數。

  物件和類別的說明其實很相似。實際上,類別和物件之間的差別經常是一些困惑的起源。在現實世界中很明顯,類別不是它描述的物件 - 自行車的藍圖不是自行車。但是在軟體中就有點難區分類別和物件。這部分是由於軟體物件只是現實世界的電子模型或抽象概念。但是也由於很多人用“物件”指類別和它們的例項這兩者。

  抽象類被定義為永遠不會也不能被例項化為具體的物件。它往往用於定義一種抽象上的概念,在類的繼承關係中它往往被定義在較上層的位置。在程式設計的實踐活動中,抽象類與介面存在類似的地方,即它更偏重於對共通的方法和屬性進行規約。但與介面存在一個非常大的差異則在於,抽象類往往可以規約一個共同的方法和屬性時提供一個對他們的實現。  以現實世界為例:“水果”可以算作一個抽象類,而“蘋果”、“香蕉”則可以作為它的派生類。區別在於,“水果”是個概念,它不會有例項,但是“蘋果”、“香蕉”則肯定會有例項。

  物件提供了模型化和資訊隱藏的好處。類別提供了可重複使用性的好處。自行車製造商一遍一遍地重用相同的藍圖來製造大量的自行車。軟體程式設計師用相同的類別,即相同的程式碼一遍一遍地建立物件。
類(英語:class)在物件導向程式設計中是一種物件導向計算機程式語言的構造,是建立物件的藍圖,描述了所建立的物件共同的屬性 (電腦科學)和方法。