黑馬程式設計師 之 介面

2021-06-18 00:57:33 字數 1793 閱讀 2161

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------

介面與抽象類的區別:

一,介面是完全抽象的成員集合。介面的主要特點是只有宣告部分,而沒有實現部分。即介面本身不提供成員的實現部分,而是在繼承介面的類中實現,並在類中被定義為單獨的實體。

二,抽象類和介面的乙個主要的區別是:類可以繼承多個介面,但只能繼承乙個抽象類。

三,介面名一般用i開頭,介面中只能包含方法、屬性、索引器和事件的宣告,不能包含建構函式(因為無法構建不能例項化的物件),也不能包含字段(因為字段隱含了某些內部的執行方式)。另外介面宣告中不能包含任何程式**。

四,定義在介面中的方法要求必須都是public

的,因此不能再使用

public

修飾符宣告。

(一),

介面的宣告與實現

在c#語言中,使用

inte***ce

關鍵字宣告乙個介面。

語法:

[訪問修飾符

]  inte***ce 

介面名稱

要實現乙個介面,必須要有相應的類。實現某個介面的任何類都將擁有該介面中的所有元素。因此,當需要在不相關的類中實現同樣的功能時,就可以使用介面。

例如:

//定義乙個介面

inte***ce ia

//定義乙個介面

inte***ce ib

//介面中的屬性,預設是public

}//定義乙個繼承了兩個介面的類

class a : ia, ib

//定義乙個帶參的建構函式

public a(string str)

//實現介面ia的方法

public int sum(int i, int j)

//實現介面ib中的屬性

public string str

set }}

class program

}

(二),顯示方式實現介面

由於不同介面中的方法可以重名,因此,在乙個類中實現介面中的方法時就存在著重複性。於是,我們可以顯示實現介面中的方法。對於顯示實現的方法,不能通過類的例項進行訪問,而必須使用介面的例項。

例如:

//定義乙個介面

inte***ce ia

//定義乙個介面

inte***ce ib

//介面中的屬性,預設是public

}//定義乙個繼承了兩個介面的類

class a : ia, ib

//定義乙個帶參的建構函式

public a(string str)

//實現介面ia的方法,由於它是ia的方法,

//所以只有ia的例項才能呼叫它,所以不能用public

int ia.sum(int i, int j)

//實現介面ib中的屬性

public string str

set }}

class program

}

---------------------- asp.net+android+ios開發、.net培訓、期待與您交流! ----------------------  

詳細請檢視:" target="blank">

黑馬程式設計師C 介面

介面使類更加規範 介面具有下列屬性 介面類似於抽象基類 實現介面的任何非抽象型別都必須實現介面的所有成員。不能直接例項化介面。介面可以包含事件 索引器 方法和屬性。介面不包含方法的實現。類和結構可繼承多個介面。介面自身可從多個介面繼承。例如 using system using system.col...

黑馬程式設計師 繼承 介面 final abstrct

1.覆蓋 只能存在於子類繼承父類中 子類覆蓋父類,必須保證子類許可權大於等於父類許可權,才可以覆蓋,否則編譯失敗 靜態只能覆蓋靜態 易混淆 過載 只看同名函式的引數列表 重寫 子父類方法要一模一樣 2.子父類中的建構函式 在對子類物件初始化時,父類的建構函式也會執行,因為子類的構造預設第一行有一條隱...

黑馬程式設計師 多型 抽象 介面

asp.net android ios開發 net培訓 期待與您交流!多型 多型就是物件可以表現多個型別的能力,比如說類,子類可以有父類的方法,也可以重寫父類的方法等,有多種能力。類的多型表現為,子類可以有與父類方法名相同的方法,子類可以重寫父類的方法 如果子類和父類的方法重名了,編譯的時候會報警告...