C# 實(shí)例化接口對象的方法
在head first 設(shè)計(jì)模式中 用到了很多很多接口對象
首先澄清一個(gè)問題,就是接口不僅可以聲明對象,而且可以把對象實(shí)例化,還可以當(dāng)做參數(shù)被傳入。
一、接口回調(diào)
這就是繼承中的向上轉(zhuǎn)型。父類 FL=new 子類();只不過這里的父類就是interface接口。(個(gè)人認(rèn)為這里不管是class的override還是interface的重寫,都是一樣的用法)
可以把實(shí)現(xiàn)某一接口類創(chuàng)建的對象的引用賦給該接口聲明的接口變量,那么該 接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口中的方法。實(shí)際上,當(dāng)接口變量調(diào)用被類實(shí)現(xiàn)的接口中的方法時(shí),就是通知相應(yīng)的對象調(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;//聲明類對象引用
Itemp tm = null;//聲明接口對象引用
tm = new num(1.1, 2.2);//接口回調(diào)(向上轉(zhuǎn)型)
Console.WriteLine(tm.plus());
Console.ReadKey();
}
}
}
通過上面的例子,我們不難看出,接口對象的實(shí)例化實(shí)際上是一個(gè)接口對象作為一個(gè)引用,指向?qū)崿F(xiàn)了它方法的那個(gè)類中的所有方法,這一點(diǎn)非常象C++中的函數(shù)指針(在C#中類似委托),但是卻是有區(qū)別的。C#中的接口對象實(shí)例化實(shí)際上是一對多的,而C++中的函數(shù)指針是一對一的。
但是需要注意的是,接口對象的實(shí)例化必須用實(shí)現(xiàn)它的類來實(shí)例化,而不能用接口本身實(shí)例化。用接口本身實(shí)例化它自己的對象在C#中是不允許的。
以上這篇C# 實(shí)例化接口對象的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#模擬http 發(fā)送post或get請求的簡單實(shí)例
下面小編就為大家?guī)硪黄狢#模擬http 發(fā)送post或get請求的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06
UnityWebRequest前后端交互實(shí)現(xiàn)過程解析
這篇文章主要介紹了UnityWebRequest前后端交互實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

