C# 實(shí)例化接口對(duì)象的方法
在head first 設(shè)計(jì)模式中 用到了很多很多接口對(duì)象
首先澄清一個(gè)問題,就是接口不僅可以聲明對(duì)象,而且可以把對(duì)象實(shí)例化,還可以當(dāng)做參數(shù)被傳入。
一、接口回調(diào)
這就是繼承中的向上轉(zhuǎn)型。父類 FL=new 子類();只不過這里的父類就是interface接口。(個(gè)人認(rèn)為這里不管是class的override還是interface的重寫,都是一樣的用法)
可以把實(shí)現(xiàn)某一接口類創(chuàng)建的對(duì)象的引用賦給該接口聲明的接口變量,那么該 接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法。實(shí)際上,當(dāng)接口變量調(diào)用被類實(shí)現(xiàn)的接口中的方法時(shí),就是通知相應(yīng)的對(duì)象調(diào)用接口方法
直接上代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { interface Itemp { double plus(); } public class num : Itemp { double aa, bb; public num(double a, double b) { this.bb = b; this.aa = a; } public double plus() { return (aa * bb); } } class Program { static void Main(string[] args) { num n = null;//聲明類對(duì)象引用 Itemp tm = null;//聲明接口對(duì)象引用 tm = new num(1.1, 2.2);//接口回調(diào)(向上轉(zhuǎn)型) Console.WriteLine(tm.plus()); Console.ReadKey(); } } }
通過上面的例子,我們不難看出,接口對(duì)象的實(shí)例化實(shí)際上是一個(gè)接口對(duì)象作為一個(gè)引用,指向?qū)崿F(xiàn)了它方法的那個(gè)類中的所有方法,這一點(diǎn)非常象C++中的函數(shù)指針(在C#中類似委托),但是卻是有區(qū)別的。C#中的接口對(duì)象實(shí)例化實(shí)際上是一對(duì)多的,而C++中的函數(shù)指針是一對(duì)一的。
但是需要注意的是,接口對(duì)象的實(shí)例化必須用實(shí)現(xiàn)它的類來實(shí)例化,而不能用接口本身實(shí)例化。用接口本身實(shí)例化它自己的對(duì)象在C#中是不允許的。
以上這篇C# 實(shí)例化接口對(duì)象的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持我們。
上一篇:C# 基礎(chǔ)入門--常量
欄 目:C#教程
下一篇:C#實(shí)現(xiàn)Windows Form調(diào)用R進(jìn)行繪圖與顯示的方法
本文標(biāo)題:C# 實(shí)例化接口對(duì)象的方法
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5861.html
您可能感興趣的文章
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已安裝軟件變化的方法
- 01-10C#實(shí)現(xiàn)多線程下載文件的方法
- 01-10C#自定義簽名章實(shí)現(xiàn)方法
- 01-10C#文件斷點(diǎn)續(xù)傳實(shí)現(xiàn)方法
- 01-10C#實(shí)現(xiàn)簡單的Login窗口實(shí)例
- 01-10C#自定義事件監(jiān)聽實(shí)現(xiàn)方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改