程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#編程利器之三:接口(Interface)(4)

C#編程利器之三:接口(Interface)(4)

編輯:關於C語言

三、接口的繼承

關於這點這裡就不作詳細的介紹,只需要記住有這樣一句話就萬歲了:“一個接口可從一個或多個基 接口繼承”。示意性代碼:

1interface IA { }
2interface IB:IA { }
3interface IC : IA, IB { }
4interface ID : IA, IB, IC { }

四、接口的特性

接口除了可以包含方法之外,還可以包含屬性、索引器、事件等,而且這些成員都被定義為公有的。 除此之外,不能包含任何其他的成員,例如:常量、域、構造函數、析構函數、靜態成員。一個類可以直 接繼承多個接口,但只能直接繼承一個類(包括抽象類)。

從類型上來說接口是引用類型的,類似於類,和抽象類的相似之處有三點:

1、不能實例化;

2、包含未實現的方法聲明;

3、派生類必須實現未實現的方法,抽象類是抽象方法,接口則是所有成員(不僅是方法包括其他成員 );

五、接口與回調

通常情況下,我們創建一個對象,並馬上直接去使用它的方法。然而,在有些情況下,希望能在某個 場景出現後或條件滿足時才調用此對象的方法。回調就可以解決這個“延遲調用對象方法”的問題。這個 被調用方法的對象稱為回調對象。

首先創建一個回調對象,然後再創建一個控制器對象,將回調對象需要被調用的方法告訴控制器對象.控 制器對象負責檢查某個場景是否出現或某個條件是否滿足.當此場景出現或此條件滿足時,自動調用回調對 象的方法.示意性代碼如下:

1using System;
2using System.Collections.Generic;
3using System.Text;
4
5namespace CallBack
6{
7  class Program
8  {
9    static void Main(string[] args)
10    {
11      //創建一個控制器對象,將提供給它的回調對象傳入
12      Resolve resolve = new Resolve(new PlayBasketball());
13      resolve.Play();
14
15      resolve = new Resolve(new PlayFootball());
16      resolve.Play();
17    }
18  }
19
20  /**//// <summary>
21  /// 定義一個接口--回調對象
22  /// </summary>
23  public interface IPlayer
24  {
25    void Play();
26  }
27
28  /**//// <summary>
29  /// 籃球
30  /// </summary>
31  public class PlayBasketball:IPlayer
32  {
33    public void Play()
34    {
35      Console.WriteLine("玩籃球");
36    }
37  }
38
39  /**//// <summary>
40  /// 足球
41  /// </summary>
42  public class PlayFootball : IPlayer
43  {
44    public void Play()
45    {
46      Console.WriteLine("玩足球");
47    }
48  }
49
50  /**//// <summary>
51  /// 控制角色--控制器對象
52  /// </summary>
53  public class Resolve
54  {
55    //持有一個接口的引用,通過構造方法初始化
56    private IPlayer player;
57    public Resolve(IPlayer player)
58    {
59      this.player = player;
60    }
61
62    public void Play()
63    {
64      player.Play();
65    }
66  }
67}

關於接口的相關知識點本文就介紹於此,更詳細的學習接口這門功夫請大家查閱相關資料。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved