班(class)和接口(interface)的區別
面向對象編程(OOP)是軟件開發中的一種常見範式。它有助於使用類和對象為編程帶來真實的場景。類是創建對象的藍圖。程序員可以用屬性和方法創建一個類。學生和老師是客體。創建對象稱為實例化。OOP也使用接口。接口和類看似相似,但它們有區別。本文討論類和接口之間的區別。類和接口之間的關鍵區別在於類是引用類型,它是實例化對象的藍圖,而接口是不能用於實例化對象的引用類型。
目錄
1. 概述和主要區別
2. 什麼是階級
3. 什麼是接口
4. 類與接口的相似性
5. 並排比較-以表格形式顯示類與接口
6. 摘要
什麼是班(class)?
在OOP中,一切都被視為一個對象。沒有類是不可能創建對象的。類是創建對象的藍圖。建造房屋時,建築師要繪製平面圖。這個計劃和上課很相似。這房子和這個物體很相似。類是構建對象的計劃。對象是使用類創建的對象。
類包含屬性和方法。學生可以擁有諸如姓名、年級、索引號等屬性。學生可以有讀書、散步、學習等方法。必須使用屬性和方法創建類。
用許多編程語言創建類的語法如下。它是使用關鍵字類創建的。
類名{
//屬性
//方法
}
C和Java等編程語言遵循類似的語法來使用類創建對象。假設類名是Student。
學生s1=新生();
這個s1就是對象。“new”關鍵字用於為屬性分配內存。類還有一個構造函數來初始化屬性或變量。
類成員(如屬性和方法)具有訪問修飾符。訪問說明符描述這些成員對其他類的可訪問性和可見性。類的成員可以具有訪問說明符,如public、private和protected。其他類可以訪問公共成員。私有成員只有類可以訪問。在類和相關子類中可以訪問受保護的成員。
什麼是接口(interface)?
抽象是面向對象編程的支柱。它將隱藏實現細節並向用戶顯示功能。抽象是通過使用抽象類和接口來實現的。抽象方法沒有實現。至少包含一個抽象方法的類稱為抽象類。
當有兩個抽象類時,應該實現在這些類中聲明的方法。一個新的類用於實現這些方法。如果兩個類都有相同的方法,可能會導致歧義問題。因此,Java和C等編程語言都有一個接口。
接口只包含方法的聲明。沒有實現的方法。此外,接口不能用於創建對象。它們用於支持多個繼承並保護代碼。
接口語法如下。Interface使用關鍵字“Interface”。
接口接口名稱{
類型method1(參數_列表);
類型method2(參數_列表);
}
根據上面的說明,接口只有聲明。沒有定義。因此,接口不能實例化對象。它只給出了接口是什麼的抽象視圖。接口中聲明的方法可以由一個或多個類實現。類使用關鍵字“implement”來實現接口。請參閱下面使用Java編寫的示例。
根據上述程序,A和B是接口。接口A有一個方法聲明,即sum()。接口B具有方法聲明sub()。類C實現了A和B兩個接口。因此,C類同時定義了sum()和sub()方法。創建C類型的對象後,可以同時調用sum()和sub()方法。
接口內聲明的方法必須始終是公共的,因為實現類定義了它們。一個接口也可以從另一個接口繼承。
班(class)和接口(interface)的共同點
- 兩者都是引用類型。
- 兩者都與面向對象編程有關。
班(class)和接口(interface)的區別
類與接口 | |
類是一種引用類型,它是創建對象的藍圖。 | 接口是無法實例化的引用類型。 |
對象實例化 | |
類用於實例化對象。 | 無法實例化接口,因為方法無法執行任何操作。 |
建造師 | |
類包含一個構造函數,用於初始化變量。 | 接口不包含構造函數,因為它們幾乎不是任何要初始化的變量。 |
關鍵字 | |
類使用關鍵字“class”。 | 接口使用關鍵字“interface”。 |
訪問說明符 | |
類的成員可以是私有的、公共的和受保護的。 | 接口的成員應該始終是公共的,因為實現類定義了它們。 |
總結 - 班(class) vs. 接口(interface)
類和接口在面向對象編程中被廣泛使用。類和接口的區別在於類是引用類型,它是實例化對象的藍圖,而接口是不能用來實例化對象的引用類型。一個類可以實現許多接口。但它只能擴展一個超類。In接口可以繼承許多接口,但不能有實現。兩者都有其重要性。程序員可以根據開發軟件來使用它們。
下載pdf類vs接口
你可以下載這篇文章的PDF版本,並按照引文說明離線使用。請在這裡下載PDF版本的類和接口的區別