程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 實例化接口對象的方法

C# 實例化接口對象的方法

編輯:C#入門知識

C# 實例化接口對象的方法。本站提示廣大學習愛好者:(C# 實例化接口對象的方法)文章只能為提供參考,不一定能成為您想要的結果。以下是C# 實例化接口對象的方法正文


在head first 設計模式中 用到了很多很多接口對象

首先澄清一個問題,就是接口不僅可以聲明對象,而且可以把對象實例化,還可以當做參數被傳入。

一、接口回調

這就是繼承中的向上轉型。父類 FL=new 子類();只不過這裡的父類就是interface接口。(個人認為這裡不管是class的override還是interface的重寫,都是一樣的用法)

可以把實現某一接口類創建的對象的引用賦給該接口聲明的接口變量,那麼該 接口變量就可以調用被類實現的接口中的方法。實際上,當接口變量調用被類實現的接口中的方法時,就是通知相應的對象調用接口方法

直接上代碼

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);//接口回調(向上轉型)
      Console.WriteLine(tm.plus());
      Console.ReadKey();
    }
  }
}

通過上面的例子,我們不難看出,接口對象的實例化實際上是一個接口對象作為一個引用,指向實現了它方法的那個類中的所有方法,這一點非常象C++中的函數指針(在C#中類似委托),但是卻是有區別的。C#中的接口對象實例化實際上是一對多的,而C++中的函數指針是一對一的。

但是需要注意的是,接口對象的實例化必須用實現它的類來實例化,而不能用接口本身實例化。用接口本身實例化它自己的對象在C#中是不允許的。

以上這篇C# 實例化接口對象的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

[db:作者簡介][db:原文翻譯及解析]
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved